Salut !

J'ai un problème avec un tableau dans ma structure !
En fait le problème vient de moi, puisque je suis encore un peu perdu avec les pointeurs et tout ça...

Voici donc ce que j'ai :
Dans mon fichier .h, j'ai une structure nommée info contenant un char **tableau;
Ce tableau est un tableau de char, donc un tableau à deux dimensions.

Dans le main de mon fichier .c, je veux à un moment donné utiliser ce tableau.
J'alloue donc la 1e dimension du tableau pour qu'il accepte nb éléments :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
ma_struct->tableau = malloc( sizeof(*(ma_struct->tableau)) * nb);
(déjà là j'ai un gros doute sur cette instruction)

Plus loin, je veux insérer un texte dans une case du tableau :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
strcpy(ma_struct->tableau[i], texte);
Évidemment ça plante à cet endroit, et je ne sais pas si c'est parce que le malloc d'avant était mauvais, ou si c'est cette dernière instruction qui plante...

Je précise aussi que je ne connais pas à priori la taille des textes à insérer dans le tableau, donc je dois allouer la mémoire de chaque dimensions séparément.


De plus (j'anticipe les problèmes à suivre mais c'est dans le même registre), pour libérer la mémoire, est-ce qu'il me suffit de faire un free sur le tableau ou bien je dois faire un free pour chaque dimension ?
Et la syntaxe suivante est-elle correcte ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
free(ma_struct->tableau[i]);
free(ma_struct->tableau);

Merci d'avance !!