From 940a20a431b7e389ae03b541264f9b751dd091fc Mon Sep 17 00:00:00 2001 From: =?utf8?q?J=C3=A9r=C3=B4me=20Benoit?= Date: Thu, 9 Mar 2017 19:27:09 +0100 Subject: [PATCH] TP5 exo4: Implement iterative linked list freeing MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Signed-off-by: Jérôme Benoit --- TP3/macros.h | 2 +- TP5/exo4/liste_chainee.c | 13 +++++++++---- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/TP3/macros.h b/TP3/macros.h index e859318..a0ccdd2 100644 --- a/TP3/macros.h +++ b/TP3/macros.h @@ -4,6 +4,6 @@ /* definition to expand macro then apply to pragma message */ #define VALUE_TO_STRING(x) #x #define VALUE(x) VALUE_TO_STRING(x) -#define VAR_NAME_VALUE(var) #var "=" VALUE(var) +#define VAR_NAME_VALUE(var) #var "=" VALUE(var) #endif /* MACROS_H */ diff --git a/TP5/exo4/liste_chainee.c b/TP5/exo4/liste_chainee.c index add8b22..d8ae698 100644 --- a/TP5/exo4/liste_chainee.c +++ b/TP5/exo4/liste_chainee.c @@ -142,12 +142,12 @@ Liste supprimer_iter(element e, Liste L) free(L); pavant->suivant = NULL; return pdebut; - /* supprimer au début de la liste */ + /* supprimer au début de la liste */ } else if (L->valeur == e && pavant == NULL) { Cellule *pcourant = L; free(L); return pcourant->suivant; - /* supprimer au mileu de la liste */ + /* supprimer au mileu de la liste */ } else if (L->valeur == e) { Cellule *pcourant = L; free(L); @@ -177,7 +177,11 @@ Liste inverser_rec(Liste L) void liberer_iter(Liste L) { - + while (!L) { + Cellule *pcourant = L; + free(L); + L = pcourant->suivant; + } } void liberer_rec(Liste L) @@ -219,7 +223,8 @@ int main() L = supprimer_iter(2, L); visualiser_rec(L); visualiser_iter(L); - liberer_rec(L); + //liberer_rec(L); + liberer_iter(L); /* ... */ } -- 2.34.1