Affichage ne marche pas

Fermé
imoura Messages postés 10 Date d'inscription samedi 20 novembre 2010 Statut Membre Dernière intervention 17 décembre 2010 - 17 déc. 2010 à 22:36
Bonjour tout le monde;
voila j'ai une liste chainée que je dois afficher ,mais je n'y arrive pas malheureusement!!
tout me parait normal dans la compilation, le problème que une fois afficher ,tout les champs prennent la valeur de la dernière valeur ajouter
pour insérer:
void insertion(liste*list,char*nomm,int cne)
{
//la structure de type etudiant comporte etudiant*ed; cne ,nom et pointeur suivant.
ed=(etudiant*)malloc(sizeof(etudiant));
if (list==NULL || ed==NULL)
exit(-1);
ed->cne=cne;
ed->nom=nomm;
ed->suivant=list->premier;
list->premier=ed;

}
void affichage(liste*list)
{
etudiant*actuel;


if(list==NULL)
exit(-1);
else
{
actuel=list->premier;
while(actuel!=NULL)
{
printf("%d ->%s->",actuel->cne,actuel->nom);
actuel=actuel->suivant;

}
printf("affichage");
}}

il m'affiche tout les cne que j'ai entré mais ils ont tous le meme nom d'étudiant est c'est le dernier que j'ai fait entre!!

p.s:j'ai un autre souci..au lieu de mettre "ed->nom=nomm;", je voudrais mettre "strcpy(ed->nom,nomm)", mais quand je le met, je n'arrive pas à faire entrer plusieurs insertions,juste deux, et le programme s'arrette ,pourquoi?