Delete // new // CObjArray::Add(* CObject) ALORS CA C'EST FORT

Résolu
Signaler
Messages postés
65
Date d'inscription
jeudi 4 septembre 2003
Statut
Membre
Dernière intervention
17 avril 2009
-
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
-
bonsoir
aider moi !

je comprend pas j'ai un tableau public de CMyLigne : CObArray m_oaLignes dans ma classe CMyCadrillage
j'ai une fonction de cette classe qui ajoute deux MyLignes au tableau.
j'ai une fonction de cette meme classe qui raméne le pointeur sur chaque ligne du tableau
pour les tracées.

Mais pour ajouter une ligne au tableau je créer un objet CMyLigne dinamiquement avec new
je modifis ma ligne,
je l'ajoute au tableau
je supprime l'objet avec delete

et le probleme c'est que si j'utilise delete, mon tableau se retrouve remplit de donnée fausses !!!!!
C'est incroyable ! je comprend pas !
Tandis que si je ne supprime pas mes objets (aprés les avoir ajouter dans le tableau biensur !!), ca marche trés bien!
kesako ????

voila le code


void CMyCadrillage::SetLigneFuite(
void)


{


CMyLigne *A=
new CMyLigne;


CMyLigne *B=
new CMyLigne;


A->SetColor(GetColor(1),GetColor(0));


B->SetColor(GetColor(1),GetColor(0));


A->PutAB(0,m_FuiteCentre);


A->PutAB(1,m_Segment.GetMyPointAB(0));


B->PutAB(0,m_FuiteCentre);


B->PutAB(1,m_Segment.GetMyPointAB(1));



m_oaLignes.RemoveAll(); // je netoi le tableau comme un porc


m_oaLignes.Add( A); // j'ajoute une ligne


m_oaLignes.Add( B); // j'ajoute une ligne



delete A; //et je vire les ligne



delete B;

3 réponses

Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
10
Evidemment qui si tu as un tableau de pointeurs il ne faut pas les supprimer avec delete, sinon les éléments du tableau ne pointent plus vers rien
Messages postés
65
Date d'inscription
jeudi 4 septembre 2003
Statut
Membre
Dernière intervention
17 avril 2009

des que je sort de la fonction les valeurs du tableau sont inexactes!!!!


for(
int a=0;a<m_oaLignes.GetCount();a++)
{
pLigne=GetpLigne(a);
}

les valeur de pLigne ne sont valable que si j'utilise ce code dans la fonction au dessus.......

j'y pense! j'ai un tableau principal dans lequel je stocke un type d'objet CObjArray MyRepere

sachant qu'un objet MyRepere, c'est un tableau CObjArray de ligne, et un tas d'autre truc inutil. C'est peut etre la que ca deconne. on doit pouvoir faire un tableau de tableau non ??
Messages postés
371
Date d'inscription
dimanche 4 janvier 2004
Statut
Membre
Dernière intervention
23 septembre 2009

As tu vraiment besoin de faire un pointeur sur CMyLigne pour l'ajouter à ton tableau ?

Cordialement,
Xterminhate.