N-PN White-Hat Project
[C] Need help pour free en recursif... - Version imprimable

+- N-PN White-Hat Project (https://dev.n-pn.fr/forum)
+-- Forum : Programmation (https://dev.n-pn.fr/forum/forumdisplay.php?fid=72)
+--- Forum : Langages compilés (https://dev.n-pn.fr/forum/forumdisplay.php?fid=25)
+--- Sujet : [C] Need help pour free en recursif... (/showthread.php?tid=1746)



[C] Need help pour free en recursif... - ark - 26-11-2011

Bonjour a tous,

Je bosse actuellement sur un projet d'analyse synthaxique, et j'ai un leger probleme pour free mes listes chainees...
En fait, je cree ma liste en mallocant une structure qui, pointe sur NULL. puis je malloc le maillon suivants et je fais pointer le precedant sur ce dernier. Jusque la, ca va.

Par contre, a la fin de mon prog, je veux free ma liste, et pour cela, je fais appel a cette fonction :

Code :
void free_linked_list(t_list *begin)
{
    if (begin->next != NULL)
         free_linked_list(begin->next);
     free(begin->element);
     free(begin->type);
     free(begin);
}

Si vous avez une idee de pourquoi ca plante... ^^"

Merci d'avance.


Need help pour free en recursif... - walafc0 - 26-11-2011

C'est quoi ton erreur ? Et pourquoi le faire en récursif ? Avec un simple while() pour parcourir ta liste c'est bon =)


Need help pour free en recursif... - ark - 26-11-2011

Bon, en fait mon erreur ne venait pas de la, mais merci de ta reponse... ^^
Pourquoi le faire en recursif ? et bien en fait si tu fait un while (), tu pourras pas free de maniere correcte ta liste, a moins de free le begin->next et ensuite acceder au maillon suivant, mais il y a le risque que la zone memoire contenant encore mon pointeur apres le free ait ete effacer entre temps puisqu'elle n'est plus allouee...


Need help pour free en recursif... - walafc0 - 27-11-2011

La fin de ton message ne veut rien dire, mais c'est pas grave ^^

Résolu, je clos.