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

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;
}
__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
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 !