Sentry Answers>C>

Determine the size of an array in C

# Determine the size of an array in C

David Y.

## .css-13lojzj{position:absolute;padding-right:0.25rem;margin-left:-1.25rem;left:0;height:100%;display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:none;}.css-b94zdx{width:1rem;height:1rem;}The Problem.css-1s1dm52{margin-left:1rem;}.css-1s1dm52.btn-small{font-size:0.8125rem;font-weight:500;height:auto;line-height:0.75rem;padding:0.5rem 0.75rem;}.css-vgbcnb{margin-left:1rem;}.css-vgbcnb.snackbar{height:auto;padding:0.5rem 0.75rem;}.css-vgbcnb.btn-small{font-size:0.8125rem;font-weight:500;height:auto;line-height:0.75rem;padding:0.5rem 0.75rem;}.css-16p7d4d{margin-left:1rem;}.css-16p7d4d.snackbar{height:auto;padding:0.5rem 0.75rem;}.css-16p7d4d.btn-small{font-size:0.8125rem;font-weight:500;height:auto;line-height:0.75rem;padding:0.5rem 0.75rem;}Jump To Solution

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
```.css-3i4pd0{position:relative;color:inherit;-webkit-transition:box-shadow 0.3s;transition:box-shadow 0.3s;will-change:box-shadow;outline:0;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;z-index:9;}.css-3i4pd0:hover,.css-3i4pd0:focus{cursor:pointer;}.css-3i4pd0:hover .e1fliqfg1,.css-3i4pd0:focus .e1fliqfg1{fill:#e1567c;cursor:pointer;}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]);
```
• SentryC Error Monitoring
• 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

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.

### Platforms

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