Bonsoir,

J'ai un joli segmentation fault qui me cause du file à retordre ! J'ai une structure qui contient un champ qui est une énumération. Lorsque je crée un objet du type de cet structure et que je donne une valeur à ce fameux champ, c'est le drame !! J'ai cherché sur internet quelques pistes sans succès !

Voici le code concerné :

Une partie de la structure avec l'enum qui pose problème :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
 
typedef struct A_exp_ *A_exp;
 
struct A_exp_ {
  enum {A_idExp, A_numEnt, A_chaine, A_numReel, A_expNeg, A_binExp, A_seqExp, A_suiteExp,A_fonction,A_compExp, A_bloc, A_affect, A_lvalue} sorte;
  union { 
    int entier;
    double reel;
  }u;
};
Le code qui crée une erreur de segmentation

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11

 A_exp *res=(A_exp *)malloc(sizeof(A_exp));
  if(res==0){
    printf("Erreur allocation id_exp\n");
    exit(1);
  }else{
    (*res)->sorte=A_idExp;  // ligne incriminée par gdb 
    (*res)->u.entier=i;
  }
  return *res;