Bonsoir.
J'essaye d'implémenter une structure contenant un tableau de chaînes de caractères, déclarée comme ceci:
Code C : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 typedef struct { char ** tab; int size; }*structure;
Instanciée comme ceci:
Code C : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 structure create_struct() { structure s = malloc(sizeof(structure)); s->tab = NULL; s->size = 0; return s; }
Lorsque je veux y insérer un élément, je procède comme ceci:
Code C : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 void insert (struct s, char * str) { if((s->tab = (char**) realloc(s->tab, sizeof (s->tab) + sizeof (str)) == NULL)) exit(EXIT_FAILURE); s->tab[s->size] = str; s->size ++; }
une erreur de segmentation intervient au moment d'insérer un premier élément, juste après le realloc().
Après différentes vérifications, je ne trouve pas d'où vient le soucis et cela me freine dans l'avancée de mon travail car ce n'est pas dutout le sujet.
Merci pour votre aide
Partager