Problème de stockage

gyzmo1 Messages postés 13 Date d'inscription samedi 29 novembre 2003 Statut Membre Dernière intervention 9 juillet 2004 - 8 avril 2004 à 17:38
gyzmo1 Messages postés 13 Date d'inscription samedi 29 novembre 2003 Statut Membre Dernière intervention 9 juillet 2004 - 11 avril 2004 à 00:37
bonjour à tous !
voilà mon problème, je travaille sur des Matrices . Chaque classe Matrice est composé de :
float ** Mat;
int Ligne;
int Colonne;

Lors de Calcul sur les matrices par exemple, multiplication
Matrice E,D,B;
E=D.Matricemul(B,C1,C1,C1,L1);
quand je regarde l exécution de la fonction tout se passe bien et tout s enregistre bien jusqu au return.
Mais une fois de retour sur la fonction appellante des données sont perdus. J ai bien E.Ligne et E.Colonne correct mais je réussis plus a acceder à mon tableau, le contenu est vide.
Quelqu un aurait une idée, merci .....

3 réponses

MoDDiB Messages postés 546 Date d'inscription mardi 26 novembre 2002 Statut Membre Dernière intervention 4 mai 2007 1
8 avril 2004 à 19:54
Tu as vérifiés les domaines de valabilités de tes variables?
0
gyzmo1 Messages postés 13 Date d'inscription samedi 29 novembre 2003 Statut Membre Dernière intervention 9 juillet 2004
8 avril 2004 à 21:08
merci mais les variables sont correctes,j ai constaté qu à la fin de ma fonction, je fais appel à mon destructeur mais aussi à mon constructeur par recopie (là je vois pas trop pourquoi dans le return) et parfois il me semble que les deux se bouffent l un l autre. Je sais pas si c possible .

Matrice::Matrice(const Matrice& o)
{ int i,j;
Ligne=o.Ligne;
Colonne=o.Colonne;
Mat=(float **) malloc((Ligne)*sizeof(float *));
for(i=0;i<Ligne;i++)
Mat[i]=(float*) malloc(Colonne*sizeof(float));

for (i=0;i<Ligne;i++)
{for(j=0;j<Colonne;j++)
{Mat[i][j]=o.Mat[i][j];
}
}
}

et

Matrice::~Matrice()
{
int i,L1;
L1=Ligne;
if (Ligne>0)
{for (i=0;i<L1;i++)
{
free(*(Mat+i));
}
free(Mat);
Ligne=0;Colonne=0;
}

}
mais merci pour l idée car c ca qui me manqu pour l instant
0
gyzmo1 Messages postés 13 Date d'inscription samedi 29 novembre 2003 Statut Membre Dernière intervention 9 juillet 2004
11 avril 2004 à 00:37
C est bon , vous pouvez arretez de chercher, il fallait simplement que je surcharge mon opérateur = car sinon je desallouais mon tableau et donc je pointais vers qqchse de vide.
Merci qd meme de l aide..
0
Rejoignez-nous