J'ai un char*
tableau comme suit:
char *tbl[] = { "1", "2", "3" };
Comment utiliser l'opérateur sizeof
pour obtenir le nombre d'éléments du tableau, ici 3?
Ce qui suit a fonctionné, mais est-ce correct?
int n = sizeof(tbl) / sizeof(tbl[0])
Oui,
size_t n = sizeof(tbl) / sizeof(tbl[0])
est la façon la plus courante de procéder.
Veuillez noter que l'utilisation de int
pour les tailles de tableau n'est pas la meilleure idée.
La version plus courte et, sans doute, plus propre ressemblerait à
sizeof tbl / sizeof *tbl
:)
Oui, cela vous donnera le nombre d'éléments dans le tableau tb1.
int n = sizeof(tbl) / sizeof(tbl[0])
Interprétation:
sizeof (tb1) donnera la taille de l'ensemble du tableau, c'est-à-dire tb1 = octets
sizeof (tb1 [0]) donne la taille du caractère car tb1 [0] donne une valeur de caractère (valeur à l'adresse tb1 + 0) = 1 octet
La division de ces deux vous donnera éléments