Bonjour à tous,
Je suis entrain d'utiliser des listes doublement chaînées sous le langage C, mon problème est que en essayant de lire le contenu d'un élément de la liste , un message parlant de violation d'accès surgit à l'écran. Bon, j'ai fait l’exécution pas à pas afin de localiser le problème et là j'ai été stupéfaite le pointeur "suivant" d'un élément en cours de lecture ne pointe plus sur l'adresse qu'il fallait pointer sur, autrement dit, lors de l'insertion dans la liste on a affecté à ce pointeur suivant l'adresse x, mais au moment de parcours de la liste j'ai trouvé que suivant contient l'adresse y, qui en plus, elle est indéfinie (??) donc ne contient ni info, ni suivant,... et c'est pour cette raison y a le message de violation d'accès.. Mon problème est comment ça peut arriver qu'une adresse change toute seule, c'est vraiment bizarre et je trouve ni explication et ni solution et le pire que ne peux pas terminer l'exécution de mon programme.
je me demande alors qui quelqu'un d'entre vous a vécu un cas semblable ou qu'il a une idée sur comment ça peut être résolu, je serais très reconnaissante.
à titre d’information j'utilise la fonction malloc pour allouer la variable dynamique qui sera pointée par ptr
ptr= (type*)malloc(sizeof(type)) et je verifie à chaque fois que l'allocation est faite avec succès:
if(ptr= (type*)malloc(sizeof(type)) !=NULL) et j'ai pas eu de problème d'allocation
Merci d'avance pour toute aide ou information qui peut m'éclaircir .
Partager