I have a char*
array as follows:
char *tbl[] = { "1", "2", "3" };
How do I use the sizeof
operator to get the number of elements of the array, here 3?
The below did work, but is it correct?
int n = sizeof(tbl) / sizeof(tbl[0])
I have a char*
array as follows:
char *tbl[] = { "1", "2", "3" };
How do I use the sizeof
operator to get the number of elements of the array, here 3?
The below did work, but is it correct?
int n = sizeof(tbl) / sizeof(tbl[0])
Yes,
size_t n = sizeof(tbl) / sizeof(tbl[0])
is the most typical way to do this.
Please note that using int
for array sizes is not the best idea.
The shorter and, arguably, cleaner version would look as
sizeof tbl / sizeof *tbl
:)
Yes, it will give you the number of elements in the array tb1.
int n = sizeof(tbl) / sizeof(tbl[0])
Interpretation:
sizeof(tb1) will gives the size of the entire array i.e, tb1 = 3 bytes
sizeof(tb1[0]) gives the size of the character as tb1[0] gives a character value(value at address tb1+0) = 1 byte
Division of those two will give you 3 elements