C sizeof char* array
102,554
Solution 1
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.
Solution 2
The shorter and, arguably, cleaner version would look as
sizeof tbl / sizeof *tbl
:)
Solution 3
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
Author by
Ayman
Creator of JSyntaxPane. Working as Consultant and coding for fun.
Updated on September 16, 2020Comments
-
Ayman almost 4 years
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])