Sentry Answers>C>

Determine the size of an array in C

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:

Click to Copy
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:

Click to Copy
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:

Click to Copy
int list_length = sizeof(my_array) / sizeof(my_array[0]);
  • Syntax.fmListen to the Syntax Podcast
  • SentryC Error Monitoring
  • Syntax.fm logo
    Listen to the Syntax Podcast

    Tasty treats for web developers brought to you by Sentry. Get tips and tricks from Wes Bos and Scott Tolinski.

    SEE EPISODES

Considered “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.

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