Bonjour,

J'ai réalise un petit shell, la 1ere commande s'exécute correctement, mais la 2eme segfault comme si j'essayais de parcourir un char * qui n'existe pas, j'aimerais donc savoir si j'ai bien comprit le fonctionnement des listes chaines avec ces quelques questions fondamentales:

Contexte:
-J'ai une liste chaine "list" initialise a NULL que je n'est pas malloc (je le précise car quand je la malloc ca ne fonctionne plus du tout, c'est d'ailleurs très traumatisant^^).
-J'ai une liste chaine new qui va me permettre d'ajouter des éléments a list.
-J'ai une liste chaine move qui va me permettre de me déplacer, pour ajouter new a la fin de la liste a chaque fois.
-Ces 3 listes ont le meme prototype et contiennent toutes un char **

1) Y a t-il une raison apparente qui expliquerait pourquoi quand je malloc list, le programme ne fonctionne plus du tout ?

2) Je commence par malloc new, ensuite, je malloc son char **, le remplit, je dis que new->next = NULL et vient le placer (le maillon new) a la fin de list (donc sur NULL pour la 1ere etape), dois-je free new avant de re-créer un autre malloc de new pour l'élément suivant ou esceque cela supprimerai le maillon que je viens de créer sur list ?

3) Je me sert de move pour parcourir list, il ne contiendra aucune donnée, doit il vraiment être malloc ? Et une question qui ressemble a celle ci-dessus, faut il free move si on veut free list et recréer une list vierge qui sera traitée de la même manière ?

Merci !