Partage
  • Partager sur Facebook
  • Partager sur Twitter

liste chainée : plante a chaque fois

zarb...

    18 mai 2006 à 12:17:34

    re,
    encore un pb de liste chainée avec Code::blocks
    des que je me sers d'une liste de pointeurs ça foire avec le message de Windows : console.exe a rencontré une erreur et doit fermer...

    voici mon code si qq1 peut tester voir si ça marche chez lui.
    (au fait je suis plus trop sur de la syntaxe.
    mon but etant de remplir la liste avec des entiers jusqu'à MAX et de renvoyer un pointeur sur le debut de la liste.

    #include <stdio.h>
    #include <stdlib.h>

    #define MAX 100

    typedef struct liste
    {
        int n;
        struct liste *suivant;
    }liste;

    liste *nombre=NULL;

    liste* Remplir_la_Liste(liste*, int);

    int main()
    {
       liste *l=NULL;
       l = Remplir_la_Liste(nombre,2);


            return 0;
    }


    liste* Remplir_la_Liste(liste *l,int i)
    {
     liste *p=(liste*)malloc(sizeof(liste));
     p=NULL;
     while (i!=MAX)
     {
        printf("coucou")// là ça marche
        p->n=i;             // là ça plante.
        Remplir_la_Liste(p->suivant,i++);
        free(p);
     }
     return l;
    }
    • Partager sur Facebook
    • Partager sur Twitter
      18 mai 2006 à 12:29:51

      Citation

      liste *p=(liste*)malloc(sizeof(liste));
      p=NULL;


      Si tu ne vois pas le problème là...

      En plus tu free tes noeuds avant de les renvoyer...

      Revoie un bon coup le cours sur l'allocation dynamique.

      • Partager sur Facebook
      • Partager sur Twitter
        18 mai 2006 à 12:47:45

        arf, j'ai honte :euh:
        j'avoue avoir un peu zappé ce cours, je pensais m'en rappeler.
        quoiqu'il en soit merci, au moins j'ai plus d'erreur mais ça marche pas :-°
        alors c'est parti pour une bonne révision...
        • Partager sur Facebook
        • Partager sur Twitter

        liste chainée : plante a chaque fois

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown