repositories
/
Algorithmic_C.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
TP6 n ary tree: Fix some memleaks
[Algorithmic_C.git]
/
TP6
/
arbres
/
arbre_n_aire_c1
/
arbre_n_aire_correction.c
diff --git
a/TP6/arbres/arbre_n_aire_c1/arbre_n_aire_correction.c
b/TP6/arbres/arbre_n_aire_c1/arbre_n_aire_correction.c
index ebffbaa4c139e2fdf99430a6830dcd0f7afa9679..1d972b2eb759091ef3e11ec2e7a2a2d53fb110f6 100644
(file)
--- a/
TP6/arbres/arbre_n_aire_c1/arbre_n_aire_correction.c
+++ b/
TP6/arbres/arbre_n_aire_c1/arbre_n_aire_correction.c
@@
-153,6
+153,7
@@
NOEUD *supprime(NOEUD * p, char *mot, int i)
return p;
}
return p;
}
+
/*****************************************************************************/
NOEUD *charge_dico(char *nom_fichier, int *nb_mots)
{
/*****************************************************************************/
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)
{
/*****************************************************************************/
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); */
} while (strcmp(mot, "0"));
/* affiche_fich(stdout,arbre,mot,0); */
+ detruis_arbre(arbre);
}
}