bonjour tout le monde
je cherche une fonction prédifinie qui désalloue la place mémoire réservéé par un arbre.
bonjour tout le monde
je cherche une fonction prédifinie qui désalloue la place mémoire réservéé par un arbre.
Tout dépend comment tu as programmé ton arbre. Donnes-nous plus de précisions...
*****************
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 struct tab { double val; int occ; String code; }; tab *Table;
et je veux désallouer P.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 typedef struct ab { tab element; struct ab *droit; struct ab *gauche; }noeud; typedef noeud * arbre; arbre P;
merci d'avance.
Pour l'instant ton pointeur P est un pointeur qui pointe n'importe où !
Et tu n'as aucun espace alloué pour un noeud !
Site : http://chgi.developpez.com
Pourquoi faire simple quand on peut faire compliqué ? (Jacques Rouxel)
mais j'ai alloué de la place pour P
Code : Sélectionner tout - Visualiser dans une fenêtre à part P = (arbre )malloc(sizeof(arbre));
Ce qui a été alloué avec malloc doit être désalloué avec free.
Mais ça c'est du C, pas du C++.
Mieux que SDL : découvrez SFML
Mes tutoriels 2D/3D/Jeux/C++, Cours et tutoriels C++, FAQ C++, Forum C++.
voila le code:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 void supprimer(arbre T) { if (! est_vide(T) ) { supprimer (T->gauche); supprimer (T->droit); } free(T); }
ensuite l'appel:
mais ça marche pas
Code : Sélectionner tout - Visualiser dans une fenêtre à part supprimer(P);
Je pense qu'il y a une erreur ici.Envoyé par sino
Tu devrai faire:
car sinon, tu n'alloue de l'espace que pour un pointeur.
Code : Sélectionner tout - Visualiser dans une fenêtre à part P = (arbre)malloc(sizeof(noeud));
Sinon, comme cela a été dis plus haut, tout dans ton code est en fait du C.
(non seulement le code mais aussi la manière de travailler)
Donc la prochaine fois, essaie de poster dans le bon forum ;-).
Utilise new et delete.
En C++ c'est très simple tu met un destructeur dans la classe ab qui fait :
Tu est obligé de faire du C ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 delete droit; delete gauche;
Partager