Bonjour,
J'avais à réaliser un projet en c et je suis resté bloqué sur un problème auquel personne ne m'a répondu. Ayant déjà rendu le projet je me permet de poser la question ici.
j'avais trois structures :
la struture pain qui contenait la structure pile et la structure sortie qui contenait elle meme la structure number.
Mon problème apparaissait à l'initialisation.
voici mes structures détaillé :
et voici le début de mon programme :
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 typedef struct s_number { int digit; struct s_number *next; struct s_number *prev; } t_number; typedef struct s_nbr_stack { struct s_number *number; struct s_nbr_stack *next; struct s_nbr_stack *prev; } t_nbr_stack; typedef struct s_op_stack { int operator; struct s_op_stack *next; struct s_op_stack *prev; } t_op_stack; typedef struct s_pain { t_nbr_stack *sortie; t_number *number; t_op_stack *pile; } t_pain;
premièrement il me faisait toujours un segfault si j'essayait d'initialiser un élément supérieur avant un élément inférieur (ex : pain avant pain->sortie). Je ne comprend pas pourquoi.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 t_pain *pain; pain = malloc(sizeof(t_pain)); pain->sortie = malloc(sizeof(t_nbr_stack)); pain->sortie->number = malloc(sizeof(t_number)); pain->pile = malloc(sizeof(t_op_stack)); pain->pile = NULL; pain->sortie->number = NULL; pain->sortie = NULL; pain = NULL;
deuxièmement avec le code ci dessus pas moyen de lui parler d'autre chose que de pain (ex : if(pain->sortie == NULL)) me donne un segfault mais pas avec if(pain == NULL) ce qui ne m'arrange pas du tout.
Quoiqu'il en soit je pense que mon deuxième problème vient du premier.
Merci d'avance
Partager