Bonjour,
Je programme une classe matrice, héritant d'une classe vecteur (un tableau qui connais sa taille).
Malheureusement, je me tape un segmentation fault a chaque fois que je veux toucher à ma matrice ... je comprend pas :/
___Vecteur
__Matrice
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
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 class Vecteur { int taille; double* value; public: Vecteur(int=1); ~Vecteur(); void vectrand(int n=10); }; Vecteur::Vecteur(int n) { int i; taille=n; value = new double[n]; for(i=0; i<n; i++) value[i]=0; } Vecteur::~Vecteur() { delete[] value; } void Vecteur::vectrand(int n) { int i; for(i=0; i<taille; i++) value[i]= rand()%n; }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
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 class Matrice : public Vecteur { int line; Vecteur** tvect; public: Matrice(int col=1, int line=1); void matrand(int n=10); Vecteur& operator[](int)const; }; //Je verrai plus tard pour le destructeur ^^ Matrice::Matrice(int line, int col) { int i; assert(line>0 && col>0); this->line = line; Vecteur** tvect = new Vecteur*[line]; for(i=0; i<line; i++) tvect[i] = new Vecteur(col); } Vecteur& Matrice::operator[](int i)const { return (*tvect)[i]; } void Matrice::matrand(int n) { int i; for(i=0; i<line; i++) (*this)[i].vectrand(n); }
Merci d'avance !
Partager