Defined in header <stddef.h> | ||
|---|---|---|
Defined in header <stdio.h> | ||
Defined in header <stdlib.h> | ||
Defined in header <string.h> | ||
Defined in header <time.h> | ||
Defined in header <uchar.h> | (since C11) | |
Defined in header <wchar.h> | (since C95) | |
typedef /*implementation-defined*/ size_t; |
size_t is the unsigned integer type of the result of sizeof , _Alignof (since C11) and offsetof, depending on the data model.
| The bit width of | (since C99) |
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.
#include <stdio.h>
#include <stddef.h>
#include <stdint.h>
int main(void)
{
const size_t N = 100;
int numbers[N];
for (size_t ndx = 0; ndx < N; ++ndx)
numbers[ndx] = ndx;
printf("SIZE_MAX = %zu\n", SIZE_MAX);
size_t size = sizeof numbers;
printf("size = %zu\n", size);
}Possible output:
SIZE_MAX = 18446744073709551615 size = 400
| signed integer type returned when subtracting two pointers (typedef) |
|
| byte offset from the beginning of a struct type to specified member (function macro) |
|
C++ documentation for size_t |
|
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/c/types/size_t