IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

[Seg Fault] introuvable


Sujet :

C

  1. #1
    Membre très actif Avatar de Goundy
    Profil pro
    Étudiant
    Inscrit en
    Avril 2005
    Messages
    605
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2005
    Messages : 605
    Par défaut [Seg Fault] introuvable
    Bonjour à tous,
    J'ai un autre seg fault quelque part mais j'avoue que je ne trouve pas d'où provient-il.
    Voilà la source (qui compile :p):
    main.c
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    #include "fonctions.h"
     
    int main(int argc, char **argv)
    {
      NOEUD             Table[MAX_CHAR];
      unsigned char     Set_Bit [8] = {128, 64, 32, 16, 8, 4, 2, 1};
      short    int      x;
      const char        sr[]="cob.txt";
      const char        de[]="boc.txt";
      unsigned char     k;
      NOEUD             root = NULL;
      NOEUD             elem = NULL;
      long int          frequence;
      FILE              *src = NULL,
                        *des = NULL;
      element           *tete = NULL,
                        *elm = NULL;
      int a;
     
        usage ();
           if ((src=fopen(sr, "r")) == NULL){
              printf ("%s not found!\n", sr);
               return H_ERROR;
               }
            else
             if ((des=fopen(de, "w")) == NULL){
                printf ("can't create %s\n", de);
                 return H_ERROR;
                }
     
         if ((x = Alloc_Table (Table)) < 0){
            printf("Error when mallocing the table...\n");
             return H_ERROR;
            }
     
     
         frequence = Constrcut_Table (src, Table);
         printf("tri de la table ...");
         Sort_Table      (Table);
         printf("Done               [fréquence %d]\n", frequence);
     
          for (a=0; a<MAX_CHAR; a++)
            if (Table[a]->car)
              printf("%c <> %d\n", Table[a]->car, Table[a]->occur);
     
            printf("construction de la liste chaînée...");
            Create_List (Table, &tete);   // c'est içi que ca foire apparament car quand j'affiche   // par la suite pour vérifier que la liste est ok j'ai le seg fault donc...
            printf("Done\n");
           printf("List is okay?!\n");
            //for (elm=tete; elm->lnext!=NULL; elm=elm->lnext)
             elm = tete;
             printf("%c -> %d\n", elm->nd->car, elm->nd->occur);
           printf("she's!\n");
     
            printf("construction de l'arbre...");
            Construct_Tree (tete, &root);
            printf ("Done");
     
           Free_List (tete);
     
        printf("OK\n");
        //printf("size of table: %d", sizeof(Table));
         Free_Table (Table);
         fclose (src);
         src = NULL;
         fclose (des);
         des = NULL;
     
    	return H_DONE;
    }
    fonctions.h
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    #ifndef H_FONCTIONS
    #define H_FONCTIONS
     
    #include <stdlib.h>
    #include <stdio.h>
    #include <string.h>
     
    #define H_DONE         0
    #define H_ERROR       -1
    #define MAX_CHAR     255
     
    typedef struct NOEUD{
       char   car;
       int           occur;
       struct NOEUD *R, *L;
        }*NOEUD;
     
    typedef struct element{
       NOEUD nd;
       struct element *lnext;
        }element;
     
    void usage              (void);
    int  Alloc_Table        (NOEUD tab[MAX_CHAR]);
    void Sort_Table         (NOEUD tab[MAX_CHAR]);
    int  Constrcut_Table    (FILE* src, NOEUD tab[MAX_CHAR]);
    void Check_Char         (char c, NOEUD tab[MAX_CHAR]);
    void Init_Noeud         (NOEUD n, unsigned char car);
    void Free_Table         (NOEUD tab[MAX_CHAR]);
    void Set_All_To_Zero    (NOEUD tab[MAX_CHAR]);
    void Create_Noeud       (NOEUD noeud, int freq, const unsigned char c,
                             NOEUD fl, NOEUD fr);
    void Create_List        (NOEUD tab[MAX_CHAR], element **t);
    void Construct_Tree     (element* t, NOEUD *rt);
     
    #endif
    fonctions.c
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    #include "fonctions.h"
     
    void usage (void){
      printf("                  Huffman\n\n");
      printf("usage: compress <option> <source> <destination>\n");
      printf("option:  -c    -----------------------    compress\n");
      printf("         -d    -----------------------    decompress\n");
        }
     
    void Sort_Table (NOEUD tab[MAX_CHAR]){
       int  count1,
            count2;
       NOEUD tmp;
     
         for (count1 = 0; count1 < MAX_CHAR; count1++)
           for (count2 = 0; count2 < (MAX_CHAR-1); count2++)
             if (tab[count2]->occur > tab[(count2+1)]->occur){
                tmp = tab[count2];
                tab[count2] = tab[(count2+1)];
                tab[(count2+1)] = tmp;
                 }
        }
     
    void Check_Char (char c, NOEUD tab[MAX_CHAR]){
       int count;
     
         for (count=0; count<MAX_CHAR; count++){
           if (tab[count]->car == 0){
             tab[count]->car = c;
             tab[count]->occur = 1;
              break;
             }
            else
              if (tab[count]->car == c){
                 tab[count]->occur++;
                  break;
                 }
           }
        }
     
    void Set_All_To_Zero (NOEUD tab[MAX_CHAR]){
       int count;
     
        for (count=0; count<MAX_CHAR; count++){
           tab[count]->car =    0;
           tab[count]->R   = NULL;
           tab[count]->L   = NULL;
            }
        }
     
    int Constrcut_Table (FILE* src, NOEUD tab[MAX_CHAR]){
        int count1;
        char c;
        long int freq = 0;
     
         printf("Construction de la table ...");
         freq = 0;
         Set_All_To_Zero (tab);
     
          while ((c=fgetc(src)) != EOF){
             Check_Char (c, tab);
             freq++;
              }
          printf("Done\n");
          return freq;
        }
     
    int Alloc_Table(NOEUD *tab){
       int count;
     
        for (count=0; count<MAX_CHAR; count++){
          tab[count] = malloc (sizeof(struct NOEUD));
           if (tab == NULL) return H_ERROR;
         }
          return H_DONE;
        }
     
    void Free_Table         (NOEUD tab[MAX_CHAR]){
       int count;
     
         for (count=0; count<MAX_CHAR; count++)
          free (tab[count]);
        }
     
    void Create_Noeud (NOEUD n, int freq, const unsigned char c,
                             NOEUD fl, NOEUD fr){
     
        n = malloc (sizeof (struct NOEUD));
        n->occur = freq;
        n->R = fr;
        n->L = fl;
        }
     
    void Create_List (NOEUD tab[MAX_CHAR], element **t){
       int count=0;
       element *tmp = NULL;
       element *em = NULL;
     
         while ((tab[count]->car)&&(count < MAX_CHAR)){
            em = malloc (sizeof(struct element));
            em->lnext = NULL;
            em->nd = tab[count];
     
             if (*t == NULL){
                *t   = em;
                tmp =  em;
               }
              else{
                 tmp->lnext = em;
                 tmp        = em;
                  }
               count++;
             }
        }
     
    void Free_List (element* t){
       element *em,
               *sv;
     
        em = t;
     
       while (em){
         sv = em;
         em = em->lnext;
         free (sv);
        }
        }
     
    void Construct_Tree (element* t, NOEUD *rt){
        element *elm = NULL,
                *lst = NULL,
                *ttmp = NULL,
                *all  = NULL,
                *ptr = NULL;
        NOEUD    nd = NULL;
     
        elm = t;
     
         while (elm->lnext){
            while (elm->lnext){
               lst = elm;
               elm = elm->lnext;
               Create_Noeud (nd, lst->nd->occur+elm->nd->occur, '!',
                            lst->nd, elm->nd);
     
               all = malloc (sizeof (struct element));
               all->nd = nd;
               all->lnext = NULL;
     
                if (ptr == NULL)  ptr = all;
                 else{
                  ptr->lnext = all;
                  ptr = all;
                  }
                if (ttmp == NULL) ttmp = all;
                //free (lst);
                //free (elm);
                 elm = elm->lnext;
                }
               elm = ttmp;
               ptr = NULL;
               ttmp = NULL;
             }
           *rt = ttmp->nd;
        }
    Merci d'avance les gars! de mon côté je continue à chercher au cas où
    Compil your life guy!
    The Aures Project

  2. #2
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Par défaut
    Tu pourrais donner quelques détails, vers quelle ligne as-tu une plante ?
    Tu as utilisé un debugueur ?
    Si tu ne sais pas, fais des print entre chauqe ligne pour cerner le problème.
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
    "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, ça vous changera les idées !
    Ma page Prolog
    Mes codes sources commentés

    Mon avatar : La Madeleine à la veilleuse de Georges de La Tour

  3. #3
    Membre très actif Avatar de Goundy
    Profil pro
    Étudiant
    Inscrit en
    Avril 2005
    Messages
    605
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2005
    Messages : 605
    Par défaut
    euh j'ai mis un commentaire pour indiquer ou çà plante dans le main.c
    Ps: le debugger de C::B me sert pas à grand chose ...
    Compil your life guy!
    The Aures Project

  4. #4
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Par défaut
    Désolé mais il y avait trop de lignes à lire.
    Si j'en crois ta définition
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    typedef struct NOEUD{
       char   car;
       int           occur;
       struct NOEUD *R, *L;
        }*NOEUD;
    NOEUD est un pointeur, donc
    est un tableau de pointeurs non initialisés, étonnes-toi que ça plante !!
    En relisant, ça n'a pas l'air d'être ça, mais comme je n'ai plus le temps, désolé
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
    "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, ça vous changera les idées !
    Ma page Prolog
    Mes codes sources commentés

    Mon avatar : La Madeleine à la veilleuse de Georges de La Tour

  5. #5
    Membre très actif Avatar de Goundy
    Profil pro
    Étudiant
    Inscrit en
    Avril 2005
    Messages
    605
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2005
    Messages : 605
    Par défaut
    Exacte! je n'avais pas remarqué que je n'initialise pas mon tableau :/ mais je viens de le faire et j'ai toujours le seg fault, il se trouve quelque part dans Create_List forcément mais après avoir relus mon code j'ai l'impréssion que je ne me suis pas trompé tout est alloué , j'accède sans faute à mes champs,...etc enfin voilà quoi
    pour mon tableau j'ai mis ceci pour l'instant ^^
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    NOEUD             Table[MAX_CHAR] = {NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
                        NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
                        NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
                        NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
                        NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
                        NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
                        NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
                        NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
                        NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
                        NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
                        NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
                        NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
                        NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
                        NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
                        NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
                        NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
                        NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
                        NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
                        NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
                        NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
                        NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
                        NULL,NULL,NULL,NULL,NULL,NULL,NULL,};
    NULL x 255 ^^
    Compil your life guy!
    The Aures Project

  6. #6
    Expert confirmé
    Avatar de PRomu@ld
    Homme Profil pro
    Ingénieur de Recherche
    Inscrit en
    Avril 2005
    Messages
    4 155
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Ingénieur de Recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 4 155
    Par défaut
    Alors chez moi, ça plante ici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    printf("%c -> %d\n", elm->nd->car, elm->nd->occur);
    C'est ceci qui plante :

    elm->nb->car tout simplement parce que elm est NULL.

    En remontant je vois ceci :

    Ceci veut donc dire que tete est NULL aussi.

    En remontant, je trouve ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Create_List (Table, &tete);
    C'est donc bien dans cette fonction que tu as un problème.

    Je regarde ta fonction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
     
    void Create_List (NOEUD tab[MAX_CHAR], element **t){ 
      int count=0; 
      element *tmp = NULL; 
      element *em = NULL; 
     
      while ((tab[count]->car)&&(count < MAX_CHAR)){ 
        em = malloc (sizeof(struct element)); 
        em->lnext = NULL; 
        em->nd = tab[count]; 
     
        if (*t == NULL){ 
          *t   = em; 
          tmp =  em; 
        } 
        else{ 
          tmp->lnext = em; 
          tmp        = em; 
        } 
        count++; 
      } 
    }
    Et je vois que le moment où t (tête) est modifié intervient lorsque ce dernier est NULL, j'ai pas encore regardé mais j'espère que c'est le cas.

  7. #7
    Expert confirmé
    Avatar de PRomu@ld
    Homme Profil pro
    Ingénieur de Recherche
    Inscrit en
    Avril 2005
    Messages
    4 155
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Ingénieur de Recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 4 155
    Par défaut
    En fait, en faisant un petit test avec ddd, tu ne rentres jamais dans ta boucle while, voici donc pourquoi tu ne modifie pas tête.

    Reste donc à toi de voir si ta condition de boucle est correcte ...


    PS : teste les retours de malloc.

  8. #8
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut Re: [Seg Fault] introuvable
    Citation Envoyé par Goundy
    Bonjour à tous,
    J'ai un autre seg fault quelque part mais j'avoue que je ne trouve pas d'où provient-il.
    Voilà la source (qui compile :p):
    Ne compile pas chez moi !
    • FreeList() n'est pas déclaré
    • Visiblement, le mécanisme de création de la liste chainée ne fonctionne pas.
    • Il faut travailler sur une meilleure modularisation et les tests unitaire.

    L'unité d'organisation est la structure de donnée...

    Ceci est très faux
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    void Create_Noeud (NOEUD n, int freq, const unsigned char c,
                             NOEUD fl, NOEUD fr){
     
        n = malloc (sizeof (struct NOEUD));
        n->occur = freq;
        n->R = fr;
        n->L = fl;
        }
    d étant un paramètre, comme je dis souvent, 'modifier un paramètre est souvent la preuve d'une erreur de conception'. Ca a pas loupé...

    Tu veux sans doute :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    static NOEUD Create_Noeud (int freq, unsigned int c,
                               NOEUD fl, NOEUD fr)
    {
     
       NOEUD n = malloc (sizeof (struct NOEUD));
       if (malloc != NULL)
       {
          n->occur = freq;
          n->R = fr;
          n->L = fl;
       }
       return n;
    }

  9. #9
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par Goundy
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    NOEUD             Table[MAX_CHAR] = {NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
                        NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
    <...>
    Une façon compliquée d'écrire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    NOEUD             Table[MAX_CHAR] = {0};

  10. #10
    Membre très actif Avatar de Goundy
    Profil pro
    Étudiant
    Inscrit en
    Avril 2005
    Messages
    605
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2005
    Messages : 605
    Par défaut
    Merci Romuald (pour les malloc ouais je vais ajouter çà ^^)
    Sinon, ma boucle m'a l'air correcte.
    tantque le caractère n'est pas à zero et tant que le compteur n'a pas dépassé la taille du tableau.
    Donc, je teste après si t (tête de la liste) est à NULL (pas encore des éléments) alors l'élément que je viens de crée représente la tête.
    Je pense qu'il ny a pas d'erreur, mais je vais tribucher encore la dessus
    Merci encore!
    Compil your life guy!
    The Aures Project

  11. #11
    Membre très actif Avatar de Goundy
    Profil pro
    Étudiant
    Inscrit en
    Avril 2005
    Messages
    605
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2005
    Messages : 605
    Par défaut
    Citation Envoyé par Emmanuel Delahaye
    Citation Envoyé par Goundy
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    NOEUD             Table[MAX_CHAR] = {NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
                        NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
    <...>
    Une façon compliquée d'écrire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    NOEUD             Table[MAX_CHAR] = {0};
    arf lol merci ^^

    Pour free_list j'ai oublié le prototype dans le .h mais c'est bizzare que code::blocks ne signal rien :/
    Compil your life guy!
    The Aures Project

  12. #12
    Membre très actif Avatar de Goundy
    Profil pro
    Étudiant
    Inscrit en
    Avril 2005
    Messages
    605
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2005
    Messages : 605
    Par défaut
    Tu as raison romuald, je n'entre pas dans la boucle mais là je suis perdu je ne comprend plus rien,
    Ben juste avant d'appeler ma fonction Create_List j'affiche les caractères de mon tableau et hop ça s'affiche sans problème, et dans la fonction Create_List avant d'entrer dans le while je fais un affichage du tout premier caractères (qui dans mon cas est supposé contenir un 't' car déjà vérifié avec l'affichage) et ben ca m'affiche 0 (zéro)...
    Je me goure!
    Compil your life guy!
    The Aures Project

  13. #13
    Membre très actif Avatar de Goundy
    Profil pro
    Étudiant
    Inscrit en
    Avril 2005
    Messages
    605
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2005
    Messages : 605
    Par défaut
    up?!
    Compil your life guy!
    The Aures Project

  14. #14
    Membre très actif Avatar de Goundy
    Profil pro
    Étudiant
    Inscrit en
    Avril 2005
    Messages
    605
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2005
    Messages : 605
    Par défaut
    Re, désolé pour le triple post
    Mais je viens de remarqué que je passe mal mon tableau à la fonction create_list, car quand je l'affiche dedans il ne contient quasi rien :/ mais dans le main il est bien remplie
    quelqu'un sait me guider s'il vous plaît?
    Compil your life guy!
    The Aures Project

Discussions similaires

  1. Afficher texte -> seg fault :( !
    Par lXT95l dans le forum OpenGL
    Réponses: 10
    Dernier message: 05/12/2006, 22h25
  2. Programme qui plante : seg fault
    Par Premium dans le forum C
    Réponses: 10
    Dernier message: 01/12/2006, 15h12
  3. Réponses: 2
    Dernier message: 10/04/2006, 19h40
  4. [fclose] erreur de fermeture (seg fault)
    Par Goundy dans le forum C
    Réponses: 17
    Dernier message: 06/04/2006, 13h16
  5. probleme de valeur retournée et seg fault
    Par florent_de_brest dans le forum C
    Réponses: 5
    Dernier message: 04/12/2005, 16h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo