theshockwave a écrit :
c'est volontaire, de faire un tableau de 1024 pointeurs sur des tableaux de 32 caractères ?
le strcpy d'une chaine vide me semble un peu douteux, si tu veux mettre le premier de ton caractères à 0, c'est aussi simple de le faire à la main.
Pour ce qui est de l'allocation / libération de la mémoire, ca m'a l'air ok au premier coup d'oeil, tu as moyen de faire un exemple minimal mais complet (compilable) qui reproduit ton problème ?
|
Hmmm, j'ai voulu faire un tableau à double entrée (32*32). Le tableau doit contenir :
"Chaine1\0"
"Chaine2\0"
"Chaine3\0"
J'ai faux?? Je remplace mon 32*32 par 32 et voici le programme :
Bizarre ça passe sans erreur..
Code :
- char **pcParamsNonTrouves;
- pcParamsNonTrouves = (char **)malloc(32*sizeof(char*));
- for ( int i = 0; i < 32; i++ ){
- pcParamsNonTrouves[i] = (char *)malloc(32*sizeof(char));
- strcpy(pcParamsNonTrouves[i],"" );
- }
- for ( int i = 0; i < 32; i++ ){
- free(pcParamsNonTrouves[i]);
- pcParamsNonTrouves[i] = NULL;
- }
- if (pcParamsNonTrouves != NULL ){
- free(pcParamsNonTrouves );
- pcParamsNonTrouves = NULL;
- }
|
je sens un return impromptu que je n'ai pas anticipé entre le malloc et le free (je touche du code qui n'est pas la miens)
Message édité par jijiz le 17-07-2009 à 15:28:35