Partage
  • Partager sur Facebook
  • Partager sur Twitter

[c] liste chainée

Sujet résolu
    12 avril 2006 à 11:10:50

    Bonjour, j'ai commence un programme avec liste chainé, il compile, mais plante lamentablement

    J'ai un doute sur les pointeurs utilisés, quelqu'un peut il regarder, merci

    header.h
    #ifndef LISTE_CHAINEE
    #define LISTE CHAINEE

    typedef struct MAILLON {       
           
            struct MAILLON *psuiv;
            int coordx;
            int coordy;
            int sizex;
            int sizey;       
           
            } MAILLON;

    typedef struct LISTE {       
           
            struct MAILLON *pdebut;       
           
            } LISTE;
           
    #endif


    main.c
    #include <stdio.h>
    #include <stdlib.h>
    #include <malloc.h>
    #include "header.h"

    void liste_constructeur ( LISTE *liste_map ) {
         
          LISTE *list;
         
          list = malloc(sizeof(LISTE));
         
          list->pdebut = NULL;
         
          liste_map = list;
         
          }
         
    void maillon_constructeur ( int coordx , int coordy , int sizex , int sizey , LISTE *list ) {
         
          MAILLON *maillon_map;
         
          maillon_map = malloc(sizeof(MAILLON));
         
                      if( list->pdebut == NULL ) {
         
                      list->pdebut = maillon_map;
                      maillon_map->coordx = coordx;
                      maillon_map->coordy = coordy;
                      maillon_map->sizex = sizex;
                      maillon_map->sizey = sizey;
                      maillon_map->psuiv = NULL;
         
                      }
                     
                     
                      else {     
         
                      maillon_map->coordx = coordx;
                      maillon_map->coordy = coordy;
                      maillon_map->sizex = sizex;
                      maillon_map->sizey = sizey;
                      maillon_map->psuiv = list->pdebut;
                      list->pdebut = maillon_map;
         
                      }
         
          }

    int main(int argc, char *argv[])
    {
     
      LISTE *liste_map; 
      liste_constructeur( liste_map );
     
      maillon_constructeur ( 250 , 350 , 20 ,80 , liste_map);
      maillon_constructeur ( 350 , 300 , 20 ,8 , liste_map);
      maillon_constructeur ( 20 , 30 , 40 ,80 , liste_map);
     
      system("PAUSE");     
      return 0;
    }


    [edit] Ca va, j'ai trouvé, c'est un problème d'initialisation de pdebut
    • Partager sur Facebook
    • Partager sur Twitter

    [c] liste chainée

    × 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