problème de segmentation fault avec mes structures
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é :
Code:
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; |
et voici le début de mon programme :
Code:
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; |
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.
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