Liste doublement chaînées

mast20 Messages postés 12 Date d'inscription   Statut Membre Dernière intervention   -  
Dalfab Messages postés 706 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour, je voudrai savoir est ce que cette fonction d insertion en tete d une liste doublement chainees est correcte ou non :

typedef struct node
{ int ele;
struct node *prec;
struct node *suiv;
}listedc;

listedc *insertion-en-tete(listedc* l, int x)
{listedc *pr=(listedc)malloc(sizeof(listedc));
if(!pr){printf("prob de memoire");exit(-1);}
pr->ele=x;
pr->prec=NULL;
pr->suiv=l;
l->prec=pr;
l=pr;
return l;
}




A voir également:

1 réponse

Dalfab Messages postés 706 Date d'inscription   Statut Membre Dernière intervention   101
 
Bonjour,
Le nom de la fonction n'est pas valide. Plutôt insertion_en_tete.
Le cast du malloc n'est pas valide. Plutôt l'enlever ou mettre (listedc*)
'l' est-il bien le premier de liste avant appel? Et si la liste est vide que vaut 'l'? S'il peut être vide, il faut corriger la fonction.
0
mast20 Messages postés 12 Date d'inscription   Statut Membre Dernière intervention  
 
svp vous pouvez la corriger pour moi ??
0
Dalfab Messages postés 706 Date d'inscription   Statut Membre Dernière intervention   101 > mast20 Messages postés 12 Date d'inscription   Statut Membre Dernière intervention  
 
non
0
ElementW Messages postés 4814 Date d'inscription   Statut Contributeur Dernière intervention   1 223
 
Le cast du malloc n'est pas valide.
Oui, et pas seulement car son cast est incorrect, mais aussi car on ne caste pas le résultat d'un malloc (ou d'un void* plus généralement) car c'est redondant, la "conversion" est faite automatiquement.
0