La fonction m'affiche bien <taille d'une adresse char *>.
Et effectivement, d'après la FAQ de fclc, même si pour déclarer officiellement un tableau multi-dimensionnel en passage de paramètre à une fonction, il faut faire quelque chose du genre
void f(char tab[42][S1][S2]....[Sn]) { ... }
Au final, le compilateur voit bien le tableau comme étant
void f(char (*tab)[S1][S2]...[Sn]) { ... }
Mais par contre déclarer les autres dimensions est nécessaire pour ne pas avoir à simuler toutes les dimensions à la main.
[^] # Re: Le C++ peut être simple
Posté par lasher . En réponse au journal Un langage pour les nuls? Le langage D!. Évalué à 2.
Si j'ai :
void f(void) {
____char tab[42];
____printf("sizeof(tab) == %lu\n", sizeof(tab));
}
J'ai bien 42 en retour. Par contre, de cette manière :
void f(char tab[42]) {
____printf("sizeof(tab) == %lu\n", sizeof(tab));
}
La fonction m'affiche bien <taille d'une adresse char *>.
Et effectivement, d'après la FAQ de fclc, même si pour déclarer officiellement un tableau multi-dimensionnel en passage de paramètre à une fonction, il faut faire quelque chose du genre
void f(char tab[42][S1][S2]....[Sn]) { ... }
Au final, le compilateur voit bien le tableau comme étant
void f(char (*tab)[S1][S2]...[Sn]) { ... }
Mais par contre déclarer les autres dimensions est nécessaire pour ne pas avoir à simuler toutes les dimensions à la main.
Enfin, c'est ce que je comprends de ce qui est écrit là :
http://docs.mandragor.org/files/Programming_languages/C/fclc(...)