Realloc() sur tableau de chaînes de caractères.
Bonsoir.
J'essaye d'implémenter une structure contenant un tableau de chaînes de caractères, déclarée comme ceci:
Code:
1 2 3 4 5
|
typedef struct {
char ** tab;
int size;
}*structure; |
Instanciée comme ceci:
Code:
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:
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