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
//structure table des symboles
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 ;
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
//structure instruction
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 typedef struct sequence{ mot_clef instruction; sequence suivant; }Sequence;
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
les unes liées aux autres comme vous pouvez le voir.
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;
Je définis une expression
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 E = malloc(sizeof(expression)); E->gauche = "i"; E->droite = "j"; E->type = 8; E->op = NULL;
le problème est quand j'affiche J->exp1->type il m'affiche 0 au lieu de 8
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;
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
Partager