Данная операция позволяет определить размер объекта по ID или типу, результатом является размер памяти в байтах (тип результата int). Формат записи:
sizeof(параметр);
где: «параметр» – тип или идентификатор объекта (не ID функции).
Если указан идентификатор сложного объекта (массив, структура, объединение), то получаем размер всего сложного объекта. Например:
sizeof(int) ® размер памяти – 2 байта,
int b[5];
sizeof(b) ® размер памяти – 10 байт.
Одно из полезных применений операции sizeof – определение реального количества элементов массива с объявленной размерностью:
char s[256];
int kol = sizeof(s)/sizeof(*s); // количество элементов массива s
Наиболее часто операция sizeof применяется при динамическом распределении памяти:
float *x; // Указатель массива
int n; // Количество элементов массива
x=calloc(n,sizeof(*x)); // Захват и очистка памяти