voila, je me pr�sente, je suis nouveau, je programe en C++ depuis 3 semaines, avant j'avais seulement apris le java en cour.
mon probl�me est le suivant (je l'ai compl�tement identifier, �a simplifira �a compr�hention et la solution pour m'aider ^^) :
pour arriv� directement � l'essentiel j'ai :
l� o� le probl�me ce pose c'est que les "pointeurPere" et "...Mere" me serve � localis� un Gene* dans un Chromosome pour ensuite faire pointer des objet dessu (d'autre Gene qui ont pour particularit� d'avoir en interne un autre Gene*).
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 typedef list<Gene*> structAdn; class Chromosome{ ... structAdn adn; ... } typedef list<Chromosome> chromolist; typedef map<string,Gene*> reference; class Genotype { ... reference * pointeurPere; reference * pointeurMere; chromolist genomPere; chromolist genomMere; ... }
Lors de l'appel du constructeur de Genotype de fait les map reference qui lie les nom des Gene avec un pointeur sur eux, pour les retrouver plus rappidement quand je cr�� plus tard les Gene qui utiliseront ces pointeurs.
La o� mon probl�me ce pose : les allocator par d�faut de la STL qui von avec le map, me pause un probl�me, j'aimerai bien d�truire les map de reference entre String et Gene*, le probl�me qui se pause, si je fait un
delete pointeurPere;
cela se traduit par un appel de la destruction du map, qui poss�de un allocator par d�faut qui lui lance un
delete Gene;
de tout les �l�ment du map, or, les g�nes sont toujours utilis�, et du cou �a me bousille ma structure de donn�, et si je fait l'appel du destructeur de map dans le ~Genotype(), je me retrouve devant le nouveau probl�me que ce cou si, les Gene du map n'existe plus et les pointeur du map pointe sur une zone de m�moire quelconque, et j'ai un gentil seg fault.
la solution que je cherche : comment modifier l'allocator d'un map pour lui dir de ne rien faire, ou de seulement g�r� les string, parceque sinon j'ai une tr�s l�g�re fuite de m�moire puisque je ne peut pas delete les pointeur de map<string,Gene*>
j'ai la r�putation d'�tre extr�ment peut claire, et toujours particuli�rement compliquer, donc pour mon premier poste est ce que je doit r�expliquer un truc pas claire ?
Partager