Problème de tableau dans une structure
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:
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:
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:
1 2
| free(ma_struct->tableau[i]);
free(ma_struct->tableau); |
Merci d'avance !!