Résultats de 1 à 2 sur 2

Sujet : [C] Liste doublement chainée

  1. #1

    [C] Liste doublement chainée

    Bonjour voila j\'ai un probleme de liste chainee ...

    Voyez vous le probleme ???

    Code:
    void *ajouterElement(struct _structForme formeActuelle)
    {
    
      courant=(struct _globale*)malloc(sizeof(struct _globale));
      if(tete==NULL)
        {
          courant->suivant=NULL;
          courant->precedent=NULL;
          tete=courant;
          queue=courant;
    
          courant->maForme=formeActuelle;
        }
      else
        {
          courant->suivant=NULL;
          courant->precedent=queue; 
          queue->suivant=courant;   
          queue=courant;
    
          courant->maForme=formeActuelle;    
        }
    }
    
    	//Debut de test
    
    	courant=queue;
    	courant->precedent=temporaire;
    
    	do
    	  {
    	    
    	    printf(\"%i\\n\",courant->maForme.type_de_la_forme);
    
    	    courant=temporaire;
    	    courant->precedent=temporaire;
    	  }
    	while(temporaire->precedent!=NULL);
    
    	//Fin de test
    Voila ca me met SEGMENTATION FAULT

    Si il manque infos dites le ...

    Je debute alors indulgence plz ...

  2. #2
    Membre MP
    Inscrit
    août 2013
    Messages
    6 517
    Salut, je vois quelques trucs en effet.

    Tu devrais mettre la structure dans le message pour qu\'on comprenne mieux.

    pour la fonction ajouterElement je suis d\'accord.

    Tu n\'appelles pas la fonction, dans ton test, existe_il des elements dans la liste ?

    Ca y est, j\'ai peut etre trouvé :

    mets
    temporaire=courant->precedent;
    plutot que
    courant->precedent=temporaire;

    Puis ton while ne marche pas, imagine,
    courant pointe sur le premier element de la liste,
    temporaire pointe sur le precedent donc null,
    et while(temporaire->precedent != NULL)
    ca bugue, ca n\'existe pas temporaire->precedent.

    autre chose au debut du test tu fais
    courant = queue,
    teste si courant != null
    pour pouvoir faire courant -> precedent

    Ca ne garanti pas qu\'il n\'y a plus de bug... :
    Lisez la charte, pensez à regarder la FAQ, les tutoriaux, l'annuaire et faites une recherche dans les forums.
    N'oubliez pas le Tag [Résolu]http://www.ressources.moteurprog.com...rum/Resolu.gif.

    Initiez-vous à Delphi avec Turbo Delphi Explorer, au C ou au C++ avec Code::Blocks et C# avec Visual C# 2005 Express.

Informations du sujet

Utilisateur(s) parcourant ce sujet

il y a actuellement 1 utilisateur(s) parcourant ce sujet. (0 membre(s) et 1 visiteur(s))

Règles des messages

  • Vous ne pouvez pas créer de sujets
  • Vous ne pouvez pas répondre aux sujets
  • Vous ne pouvez pas importer de fichiers joints
  • Vous ne pouvez pas éditer vos messages
  •  
  • Les BB codes sont Activés
  • Les Smileys sont Activés
  • Le BB code [IMG] est Activé
  • Le code [VIDEO] est Activé
  • Le code HTML est Désactivé