[C++]Représentation d'un arbre et memory leak
Mr.Mime
-
KX Messages postés 19031 Statut Modérateur -
KX Messages postés 19031 Statut Modérateur -
Bonjour,
Salut!
Je suis en train de faire un programme qui parcourt un arbre.
Je le fais de façon récursive avec une seule fonction :
1- Je donne un noeud de départ (la racine).
2- Je regarde à l'intérieur du noeud le nombre de noeuds de plus bas niveau
Je pensais n'utiliser qu'une seule giga structure récursive :
struct directory_data
{
int dir_count;
string path;
directory_data *dir;
};
De cette facon, je n'ai qu'une seule structure (appelons là toplevel) qui contient tous les noeuds de plus bas niveau.
Ex: toplevel.dir[0] pour aller au noeud 0 de la racine.Cependant, lorsque j'aurais, disons, toplevel.dir[24].dir[256].dir[1], j'aurais fait un paquet d'allocation dynamiques s'emboitant les unes aux autres .
Donc ma question!
Faudra-il TOUT reparcourir pour désallouer chaque tableau ou simplement "delete toplevel;" (LA STRUCT du plus haut niveau, qui contient toutes les alloc de plus bas niveau) marcherait? J'ai pensé utilisé les vecteurs, mais est-ce le chemin à emprunter si je ne compte que "lire" l'arbre sans le modifier? Je n'ai trouvé aucune utilité des fonctions push_back ou autres...
Merci de vos lumières :)
Ps. Si le bonne façon de faire est d'utiliser un conteneur, est-ce que je pourrais savoir comment on désalloue mon arbre quand même? :p
Salut!
Je suis en train de faire un programme qui parcourt un arbre.
Je le fais de façon récursive avec une seule fonction :
1- Je donne un noeud de départ (la racine).
2- Je regarde à l'intérieur du noeud le nombre de noeuds de plus bas niveau
Je pensais n'utiliser qu'une seule giga structure récursive :
struct directory_data
{
int dir_count;
string path;
directory_data *dir;
};
De cette facon, je n'ai qu'une seule structure (appelons là toplevel) qui contient tous les noeuds de plus bas niveau.
Ex: toplevel.dir[0] pour aller au noeud 0 de la racine.Cependant, lorsque j'aurais, disons, toplevel.dir[24].dir[256].dir[1], j'aurais fait un paquet d'allocation dynamiques s'emboitant les unes aux autres .
Donc ma question!
Faudra-il TOUT reparcourir pour désallouer chaque tableau ou simplement "delete toplevel;" (LA STRUCT du plus haut niveau, qui contient toutes les alloc de plus bas niveau) marcherait? J'ai pensé utilisé les vecteurs, mais est-ce le chemin à emprunter si je ne compte que "lire" l'arbre sans le modifier? Je n'ai trouvé aucune utilité des fonctions push_back ou autres...
Merci de vos lumières :)
Ps. Si le bonne façon de faire est d'utiliser un conteneur, est-ce que je pourrais savoir comment on désalloue mon arbre quand même? :p
A voir également:
- [C++]Représentation d'un arbre et memory leak
- Windows memory cleaner - Télécharger - Optimisation
- Windows memory diagnostic - Télécharger - Optimisation
- Mot de passe leak - Guide
- Patriot memory restore - Télécharger - Récupération de données
- Arbre généalogique famille michelin - Télécharger - Généalogie