Liste chainée simple..

Fermé
AntoninMich Messages postés 1 Date d'inscription mardi 19 août 2014 Statut Membre Dernière intervention 19 août 2014 - 19 août 2014 à 18:34
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 19 août 2014 à 21:53
Bonjour à tous, je suis débutant en C et j'aimerai simplement créer une liste chainée composée de 3 chainons. Chaque chainon serait composé d'un Nom à afficher et d'un pointeur vers le chainon suivant. Voici mon programme, le problème c'est qu'il ne fonctionne pas :/ Quelqu'un saurait m'en expliquer la cause ?
Merci!

#include <stdlib.h>
#include <stdio.h>
#include <string.h>

struct Cellule
{
char Nom[30];
struct Cellule * PtrSvt;
};
int main()
{
struct Cellule *Ptr=NULL;


int i;
i=0;

while(i < 3)
{

printf("\n Nom ?:");
gets(Ptr->Nom);
printf("%s",Ptr->Nom);
i++;
Ptr=Ptr->PtrSvt=NULL;

}

return 0;
}
A voir également:

1 réponse

fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 836
19 août 2014 à 21:53
Bonjour,

Merci pour la prochaine fois d'utiliser la balise "code c". Exemple :
<"code c">/*ici tu mets ton code*/<"/code"> (sans les guillemets).

gets(Ptr->Nom);
A ne pas utiliser. Il vaut mieux utiliser fgets().

Ptr=Ptr->PtrSvt=NULL;
Que veux-tu faire avec ton =NULL ? C'est en trop.

Sinon, il manque les allocations pour initialiser d'autres noeuds. J'ai l'impression que le principe n'est pas très bien compris. Je te conseille donc la lecture du lien suivant : http://fr.openclassrooms.com/informatique/cours/les-listes-chainees-2

Bon courage.
Cdlt,
0