bonsoir , j'ai plusieurs structures

/type def
typedef struct expression * expression;
typedef struct test * test;
typedef struct symbole * symbole;
typedef struct sequence * sequence;
typedef struct mot_clef * mot_clef;





//structure test
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
typedef struct test {
expression elem1;
char op[2] ;
expression elem2;
} Test ;
//structure table des symboles
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
typedef struct symbole
{
   char *nom_var;
   char *val_ch;
   float val_num;
   int type;
   symbole  lien;
}Symbole;

//structure sequence
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
typedef struct sequence{
mot_clef instruction;
sequence suivant;
}Sequence;
//structure instruction
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
typedef struct mot_clef{
char *nom;
test condition ;
char *nom_var;
expression exp1;
expression exp2;
expression exp3;
sequence seq1;
sequence seq2;
}Mot_clef;

//structure expression
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
typedef struct expression {
char * gauche;
char * op; //(entier : 0 non défini, 1 caractère, 2 nombre, 3 phrase 4 calcul 5 nombre variable  6 chaine variable 7 variable variable   8 variable)
int type;
char * droite; } Expression;
les unes liées aux autres comme vous pouvez le voir.


Je définis une expression

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
E  = malloc(sizeof(expression));
E->gauche = "i";
E->droite = "j";
E->type = 8;
E->op = NULL;
et je déclare un mot_clef qui a pour membre l'expression juste défini ci dessous


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
J = malloc(sizeof(mot_clef));
J->nom = "PRINT";
 
J->exp1 = E;
J->exp2 = NULL;
J->exp3 = NULL;
J->seq1 = NULL;
J->seq2 = NULL;
J->condition = NULL;
J->nom_var = NULL;
le problème est quand j'affiche J->exp1->type il m'affiche 0 au lieu de 8

Avec ddd , deja dès le malloc mes membres ont une adresse hors d'atteinte mais ils en one une et après certaines affectations les adresses de certains membres changent vraiment trop bizzare , auriez vous une explicatio?

merci