David Y.
—How can I determine the size of and number of elements in an array in C?
We can use the C sizeof
operator to discover the size of expressions and data types in bytes. Using sizeof
on an array will return the array’s size in bytes, as below:
size_t array_size = sizeof(my_array);
The size_t
type is used for sizes returned by sizeof
.
To get the number of elements in our array, we need to divide this value by the size of a single element. Being of the same type, all elements in a C array will also be of the same length, so we can use the first element (my_array[0]
) to do this:
size_t list_length = sizeof(my_array) / sizeof(my_array[0]);
In the background, size_t
is an unsigned integer or unsigned long. Therefore, unless the size of our array is greater than INT_MAX
, we can safely declare list_length
as an int
:
int list_length = sizeof(my_array) / sizeof(my_array[0]);
Tasty treats for web developers brought to you by Sentry. Get tips and tricks from Wes Bos and Scott Tolinski.
SEE EPISODESConsidered “not bad” by 4 million developers and more than 100,000 organizations worldwide, Sentry provides code-level observability to many of the world’s best-known companies like Disney, Peloton, Cloudflare, Eventbrite, Slack, Supercell, and Rockstar Games. Each month we process billions of exceptions from the most popular products on the internet.