Liste chainé en C:URGENT

body2003 Messages postés 1 Statut Membre -  
adso Messages postés 14 Statut Membre -
ma fonction d'ajout d'un element a une liste chainé est:
void SAISIE(struct liste *l)
{
struct personne *nouveau;
struct personne *p;

nouveau=(struct personne *)malloc(sizeof(struct personne));
if(nouveau==NULL)
{
printf("ajout impossible!");
exit(1);
}
printf(" - Entrez le nom :");
scanf("%s",nouveau->nom);
nouveau->suivant=NULL;
if(l->premier==NULL)
{
l->premier=nouveau;
}
else
{

p=l->premier;
while(p!=NULL)
{
p=p->suivant;
}
p=nouveau;
}
}

aprés que j'ajoute plusieurs elements je constate que seulementle premier element qui est ajouté.
where is the problem?
A voir également:

1 réponse

adso Messages postés 14 Statut Membre 3
 
Si je me trompe pas avec while(p!=NULL) tu veux tester si tu es sur la derniere entree de ta liste, dans ce cas, je crois que c'est while(p->suivant!=NULL) qu'il faudrait mettre.
--
Adso
0
adso Messages postés 14 Statut Membre 3
 
[pfff j'oublie la fin de mon explication ... ]
Ensuite en sortie de boucle while, tu mets p->suivant=nouveau
--
Adso
0