Оператор sizeof
не должен иметь операнда, который является параметром функции, объявленным как “массив типа”
Оператор sizeof
не должен иметь операнда, который является параметром функции, объявленным как “массив типа”.
Оператор sizeof
, действующий на массив обычно, возвращает размер массивов в байтах. Например, в следующем коде, sizeof(arr)
возвращает размер arr
в байтах.
int32_t arr[4]; size_t numberOfElements = sizeof (arr) / sizeof(arr[0]);
Однако, когда массив является параметром функции, он ухудшается к указателю. Оператор sizeof
, действующий на массив, возвращает соответствующий размер указателя а не размер массивов.
Использование оператора sizeof
на массиве, который является параметром функции обычно, указывает на непреднамеренную программную ошибку.
Оператор sizeof
не должен иметь операнда, который является параметром функции, объявленным как “массив типа”.
Если вы ожидаете нарушение правила, но не видите его, обратитесь к Кодированию Стандартных Нарушений, Не Отображенных.
Группа: Выражения |
Категория: обязательный |
Категория AGC: обязательный |
Язык: C90, C99 |