size_t
Header: <stddef.h>
size_t is the unsigned integer type of the result of sizeof, offsetof and _Alignof(until C23)alignof(since C23), depending on the data model.
# Declarations
typedef /*implementation-defined*/ size_t;
# Notes
size_t can store the maximum size of a theoretically possible object of any type (including array).
size_t is commonly used for array indexing and loop counting. Programs that use other types, such as unsigned int, for array indexing may fail on, e.g. 64-bit systems when the index exceeds UINT_MAX or if it relies on 32-bit modular arithmetic.
# Example
#include <stddef.h>
#include <stdint.h>
#include <stdio.h>
int main(void)
{
const size_t N = 101;
int numbers[N];
size_t sum = 0;
for (size_t ndx = 0; ndx < N; ++ndx)
sum += numbers[ndx] = ndx;
size_t size = sizeof numbers;
printf("sum = %zu\n", sum);
printf("size = %zu\n", size);
printf("SIZE_MAX = %zu\n", SIZE_MAX);
}