Déclaration statique d'un tableau de taille fixe de pointeurs
Le code suivant utilise une declaration dynamique d'un tableau de 3 char* :
Code:
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:
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.