Cet exemple fonctionne très bien:Initialiser un tableau de pointeurs vers des pointeurs
static char *daytab[] = {
"hello",
"world"
};
Cela ne signifie pas:
static char *daytab[] = {
{0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31},
{0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}
};
La façon dont je vois est que le premier exemple crée un tableau qui est rempli avec des pointeurs vers les deux littéraux de chaîne (qui sont eux-mêmes des tableaux). Le deuxième exemple, IMO, devrait être identique - créer un tableau et le remplir avec des pointeurs vers les deux tableaux char. Est-ce que quelqu'un pourrait m'expliquer pourquoi le deuxième exemple est faux?
P.S. Vous pourriez probablement l'écrire comme ceci (ne l'ai pas testé):
static char a[] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
static char b[] = {0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
static char *daytab[] = {
a,
b
};
Mais cela ressemble à trop de travail :).
4 réponses, mais je n'en vois qu'une seule? Comment venir? – Ree
Délaissé par l'auteur. –
Je l'avais eu l'autre jour. SO semble prendre un certain temps pour rendre compte complètement des réponses supprimées. Il va se régler au bon compte "bientôt". – RBerteig