C sizeof char* tableau
J'ai un tableau char*
comme suit:
char *tbl[] = { "1", "2", "3" };
Comment utiliser l'opérateur sizeof
pour obtenir le nombre d'éléments du tableau, ici 3?
Le ci-dessous a fonctionné, mais est-ce correct?
int n = sizeof(tbl) / sizeof(tbl[0])
28
demandé sur
Ayman
2009-10-13 16:33:06
3 réponses
Oui
size_t n = sizeof(tbl) / sizeof(tbl[0])
Est la façon la plus typique de le faire.
Veuillez noter que l'utilisation de int
pour les tailles de tableau n'est pas la meilleure idée.
34
répondu
sharptooth
2015-09-16 06:43:28
La version plus courte et, sans doute, plus propre ressemblerait à
sizeof tbl / sizeof *tbl
:)
14
répondu
AnT
2009-10-13 16:46:22
Oui, il vous donnera le nombre d'éléments dans le tableau tb1.
int n = sizeof(tbl) / sizeof(tbl[0])
l'Interprétation:
Sizeof (tb1) {[6] } donnera la taille du tableau entier, c'est-à-dire, tb1 = 3 octets
Sizeof(tb1[0]) donne la taille de caractère comme tb1[0] donne une valeur de caractère(valeur à l'adresse tb1+0) = 1 byte
Division de ces deux vous donnera 3 éléments de
2
répondu
Mahesh
2013-08-07 15:12:03