Determine the size of an array in C

David Y.

The Problem

How can I determine the size of and number of elements in an array in C?

The Solution

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]);

Loved by over 4 million developers and more than 90,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.

Share on Twitter
Bookmark this page
Ask a questionJoin the discussion

Related Answers

    A better experience for your users. An easier life for your developers.

    © 2024 • Sentry is a registered Trademark
    of Functional Software, Inc.