Liste doublement chaînées

mast20 Messages postés 14 Statut Membre -  
Dalfab Messages postés 720 Statut Membre -
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 720 Statut Membre 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 14 Statut Membre
 
svp vous pouvez la corriger pour moi ??
0
Dalfab Messages postés 720 Statut Membre 101 > mast20 Messages postés 14 Statut Membre
 
non
0
ElementW Messages postés 5690 Statut Contributeur 1 224
 
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