Liste chainee, supprimer le maillon lu.

Liste chainee, supprimer le maillon lu. - C - Programmation

Marsh Posté le 20-06-2004 à 14:54:36    

Hello,
 
J'ai un probleme galere de liste chainee (je maitrise pas bien)...
J'ai une boucle qui lit ma liste et j'aimerais supprimer le maillon que je viens de lire... Comment dois-je faire ? Dans tout ce que j'ai teste j'ai systematiquement un segfault a la suppression du dernier maillon.
 
for (courant = game->buffer; courant; courant = courant->next) {
  fprintf(stderr, "Maillon %s\n", courant->buffer);
  // supprimer ici de la liste le maillon courant
}
 
Merci

Reply

Marsh Posté le 20-06-2004 à 14:54:36   

Reply

Marsh Posté le 20-06-2004 à 15:09:07    

tu veux déplacer ton pointeur de début de liste vers le maillon suivant ?
 
si tes structures sont bonnes c'est le  

Code :
  1. courant = courant->next


qui le fait
 
après il est fort possible que tu lises un espace non alloué :)

Reply

Marsh Posté le 20-06-2004 à 15:15:30    

ben quand je rappelle ma fonction de lecture tous les maillons sont toujours la...

Reply

Marsh Posté le 20-06-2004 à 15:19:35    

mais que je suis con :)
 
je declare un nouveau pointeur "courant" vers ma liste a chaque appel... tu m'etonnes que c'est pas supprime.
 
c'est dingue d'etre aussi bete quand meme !

Reply

Marsh Posté le 20-06-2004 à 15:19:35    

edit : burned


Message édité par black_lord le 20-06-2004 à 15:20:09
Reply

Marsh Posté le 20-06-2004 à 15:20:15    

meme heure de post joli

Reply

Marsh Posté le 20-06-2004 à 15:20:59    

merci en tout cas, parce que je crois que j'aurais pu rester deux heures devant je l'aurais pas vu :)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed