Le code suivant utilise une declaration dynamique d'un tableau de 3 char* :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
void test(char ***trois)
{
	(*trois)[0] = "chaine 0";
	(*trois)[1] = "chaine 1";
	(*trois)[2] = "chaine 2";
}
 
void main()
{
	char **ex = malloc(3 * sizeof(char *));
	test(&ex);
	printf("%s %s %s\n", ex[0], ex[1], ex[2]);
	free(ex);
}
Je n'arrive pas à déclarer la meme chose de manière statique.
Si mon main devient comme le code qui suit, j'ai un warning à la compilation et un segfault à l'exécution.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
void main()
{
	char *ex[3];
	test(&ex);
	printf("%s %s %s\n", ex[0], ex[1], ex[2]);
}
Je remercie d'avance la personne qui m'expliquera la maniere correcte de déclarer statiquement cette exemple.