TP6 n ary tree: Fix some memleaks
[Algorithmic_C.git] / TP6 / arbres / arbre_n_aire_c1 / arbre_n_aire_correction.c
index ebffbaa4c139e2fdf99430a6830dcd0f7afa9679..1d972b2eb759091ef3e11ec2e7a2a2d53fb110f6 100644 (file)
@@ -153,6 +153,7 @@ NOEUD *supprime(NOEUD * p, char *mot, int i)
     return p;
 }
 
+
 /*****************************************************************************/
 NOEUD *charge_dico(char *nom_fichier, int *nb_mots)
 {
@@ -175,6 +176,20 @@ NOEUD *charge_dico(char *nom_fichier, int *nb_mots)
 }
 
 
+NOEUD *detruis_arbre(NOEUD * p)
+{
+    if (p == NULL)
+       return p;
+    else {
+       p->fils = detruis_arbre(p->fils);
+       p->frere = detruis_arbre(p->frere);
+       free(p);
+       p = NULL;
+       return p;
+    }
+}
+
+
 /*****************************************************************************/
 void sauve_dico(NOEUD * p, char *nom_fichier, int nb_mots)
 {
@@ -263,6 +278,7 @@ int main(int argc, char *argv[])
     } while (strcmp(mot, "0"));
 
     /* affiche_fich(stdout,arbre,mot,0); */
+    detruis_arbre(arbre);
 
 }