Peut-être dans moon_find_envS(), la variable S2=&stack est allouée sur la pile,
et son adresse est retournée comme résultat en fin de fonction, mais cet espace mémoire doit être réutilisé après par d'autre fonctions.
Tu peux enlever la variable stack et remplacer le memcpy par un moonS_copy.
Mais ....
... dans moon_resolve, la variable parents est un pointeur vers une
zone mémoire allouée par un malloc et un peu plus loin, cette adresse est écrasée par : parents = moon_find_envS(parents);
donc tu ne peux plus libérer cette zone.
[^] # Re: bizarre
Posté par jlh . En réponse au message bug gcc ? ou je n'y comprend plus rien .... Évalué à 3.
et son adresse est retournée comme résultat en fin de fonction, mais cet espace mémoire doit être réutilisé après par d'autre fonctions.
Tu peux enlever la variable stack et remplacer le memcpy par un moonS_copy.
Mais ....
... dans moon_resolve, la variable parents est un pointeur vers une
zone mémoire allouée par un malloc et un peu plus loin, cette adresse est écrasée par : parents = moon_find_envS(parents);
donc tu ne peux plus libérer cette zone.