Bonjour,
Je suis actuellement en train de travailler sur une librairie gérant les listes pour mon cour de programmation. Dans cette librairie, j'ai décidé d'ajouter une fonction suite qui prend une liste et qui retourne la liste privé de son premier élément.
Tout d'abord, j'ai écrie une fonction qui devrait fonctionner mais qui dans la pratique ne fonctionne que quand elle en a envie (sic) :
liste* suite (const liste l){
liste *sL;
elem_liste *e;
e = l;
(*sL)=e->suiv;
return sL;
}
J'ai finalement réussi à la faire fonctionner tout le temps en l'écrivant ainsi :
liste* suite (const liste l){
elem_liste *e;
e = l;
return &(e->suiv);
}
Ma question est donc : Pourquoi la première fonction ne fonctionne pas correctement alors qu'elle semble faire la même chose que la seconde ?
Voici ma structure de donnée (ça peut être utile ...) :
typedef struct s_elem_liste {
int info;
struct s_elem_liste *suiv;
} elem_liste;
typedef elem_liste* liste;