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 :
(déjà là j'ai un gros doute sur cette instruction)
Code : Sélectionner tout - Visualiser dans une fenêtre à part ma_struct->tableau = malloc( sizeof(*(ma_struct->tableau)) * nb);
Plus loin, je veux insérer un texte dans une case du tableau :
É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...
Code : Sélectionner tout - Visualiser dans une fenêtre à part strcpy(ma_struct->tableau[i], texte);
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 !!
Partager