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