Ik probeer een array te updaten, maar de waarde die ik er in de functie in stop wordt er niet uitgehaald. Ik heb gekeken naar de pointers en nu ben ik erachter gekomen dat de output van pointer 1 (regel 28 van a.cpp) gelijk is aan de output van pointer 2 (regel 19 van ex_file.cxx), maar ongelijk aan die van pointer 3 (regel 21 van ex_file.cxx). Het probleem zit hem dus in regel 20 van ex_file.cxx. Ik weet alleen niet hoe ik dit probleem kan omzeilen, maar simpelweg wil ik er voor zorgen dat in regel 41 van a.cpp de inhoud van array_1 gelijk is aan de inhoud van matrix_1.
Mochten er onduidelijkheden zitten in de code of dingen die je qua codestructurering onlogisch lijken dan hoor ik graag opmerkingen.
File a.cpp:
File ex_file.cxx:
File ex_file.hxx:
Mochten er onduidelijkheden zitten in de code of dingen die je qua codestructurering onlogisch lijken dan hoor ik graag opmerkingen.
File a.cpp:
C++:
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
| #include <iostream.h> #include <stdlib.h> #include <fstream.h> #include <string.h> #include <stdio.h> #include <math.h> #include "ex_file.cxx" #include "ex_file.hxx" void functie_1(double *array_1, int lengte) { ex_file *controller; controller = new ex_file(); controller->func_ex(array_1, lengte); cout << *array_1 << endl; // 1 return; } int main { double *array_1; int lengte = 30; void functie_1(double *, int); array_1 = new double[lengte]; functie_1(array_1, lengte); return 0; } |
File ex_file.cxx:
C++:
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
| #include "ex_file.hxx" #include <math.h> #include <time.h> #include <stdlib.h> void ex_file::func_ex(double *matrix_1, int breedte) { srand ( time(NULL) ); cout << matrix_1 << endl; // 2 matrix_1 = new double[breedte]; cout << matrix_1 << endl; // 3 for(i = 0; i < breedte; i++) { { a = rand(); matrix_1[i] = (2*a/RAND_MAX - 1.0); } } return; } |
File ex_file.hxx:
C++:
10
11
12
13
14
15
16
17
18
19
| #ifndef ex_file_hxx #define ex_file_hxx class ex_file { int i, a; void func_ex(double *matrix_1, int breedte) }; #endif |
[ Voor 6% gewijzigd door Opi op 03-05-2004 18:54 ]