Liste doublement chaînées

Fermé
Signaler
Messages postés
12
Date d'inscription
mercredi 2 mars 2016
Statut
Membre
Dernière intervention
1 mai 2016
-
Messages postés
623
Date d'inscription
dimanche 7 février 2016
Statut
Membre
Dernière intervention
20 janvier 2022
-
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;
}




1 réponse

Messages postés
623
Date d'inscription
dimanche 7 février 2016
Statut
Membre
Dernière intervention
20 janvier 2022
84
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
Messages postés
12
Date d'inscription
mercredi 2 mars 2016
Statut
Membre
Dernière intervention
1 mai 2016

svp vous pouvez la corriger pour moi ??
0
Messages postés
623
Date d'inscription
dimanche 7 février 2016
Statut
Membre
Dernière intervention
20 janvier 2022
84 >
Messages postés
12
Date d'inscription
mercredi 2 mars 2016
Statut
Membre
Dernière intervention
1 mai 2016

non
0
Messages postés
4764
Date d'inscription
dimanche 12 juin 2011
Statut
Contributeur
Dernière intervention
5 octobre 2021
1 305
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