static char* theFruit[] = {
"lemon",
"orange",
"apple",
"banana"
};
I know the size is 4 by looking at this array. How do I programmatically find the size of this array in C? I do not want the size in bytes.
static char* theFruit[] = {
"lemon",
"orange",
"apple",
"banana"
};
I know the size is 4 by looking at this array. How do I programmatically find the size of this array in C? I do not want the size in bytes.
sizeof(theFruit) / sizeof(theFruit[0])
Note that sizeof(theFruit[0]) == sizeof(char *)
, a constant.
Use const char* instead as they will be stored in read-only place. And to get size of array
unsigned size = sizeof(theFruit)/sizeof(*theFruit);
Both *theFruit and theFruit[0] are same.
It's always a good thing to have this macro around.
#define SIZEOF(arr) (sizeof(arr) / sizeof(*arr))