Erreur de segmentation - ajout en fin de liste

Signaler
Messages postés
5
Date d'inscription
dimanche 31 décembre 2000
Statut
Membre
Dernière intervention
5 juin 2009
-
Messages postés
5
Date d'inscription
dimanche 31 décembre 2000
Statut
Membre
Dernière intervention
5 juin 2009
-
Salut à tous!

J'ai une procédure recursive sensée ajouter un élément en fin de liste qui pose un problème: je ne vois aucune erreur et pourtant lorsque j'execute le programme, au moment d'utiliser cette procedure j'ai une erreur de segmentation...

voici la procédure:

void Ajout_en_Queue(T_Case c, T_Liste l)
   {
       T_Liste p=l;
  
       if (Longueur(p)!=0)
       {

         Ajout_en_Queue(c,p->suivant);
       }
       else
       {
         p->suivant=(T_Liste)malloc(sizeof(T_Element));
         p->valeur=c;
       }

   }

si quelqu'un voulait bien nous aider... ça serait sympa

merci d'avance!
A+

3 réponses

Messages postés
1107
Date d'inscription
mercredi 15 juin 2011
Statut
Membre
Dernière intervention
10 juillet 2018
4
salut

a tester mais ton test ne me parait pas correct :
if (Longueur(p)!=0)
je ferais plutot :
if ( p != NULL)
Messages postés
416
Date d'inscription
vendredi 31 janvier 2003
Statut
Membre
Dernière intervention
19 décembre 2013
2
Salut,

algorithme pour l'ajout en queue: on suppose que T_Liste l , et T_Case c sont des pointeurs vers des ressources valides

T_Liste temp = l ; //en parametre T_Liste l
if(temp==NULL)
{
l= c;//en parametre T_Case c
}
else
{
      while(temp->suivant!=NULL)temp = temp->suivant;
       temp->suivant = c;
}

Bonne continuation
http://liveplayaz.com

je suis heureux de faire partie d'une grande famille ...!
Messages postés
5
Date d'inscription
dimanche 31 décembre 2000
Statut
Membre
Dernière intervention
5 juin 2009

merci bien, j'avais réglé mon probème depuis, je pense qu'on peut clore le sujet! Merci de votre aide en tout cas!

à bientot!