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