exponenta event banner

MISRA C++: Правило 2008 5-0-15

Индексация массива должна быть единственной формой арифметики указателя

Описание

Определение правила

Индексация массива должна быть единственной формой арифметики указателя.

Объяснение

Можно пройти массив двумя способами:

  • Приращение или уменьшение индекса массива, а затем использование индекса массива для доступа к элементу.

  • Приращение или уменьшение указателя на массив, а затем отмена привязки указателя.

Первый метод является более четким и менее подверженным ошибкам.

Все другие формы явной арифметики указателей создают риск доступа к непреднамеренным ячейкам памяти.

Внедрение Polyspace

Флаги средства проверки:

  • Арифметические операции для всех указателей, например p+I, I+p и p-I, где p является указателем и I целое число..

  • Индексирование массива на указателях, не являющихся массивами.

Поиск неисправностей

Если вы ожидаете нарушения правила, но не видите его, обратитесь к разделу Нарушения стандартов кодирования не отображаются.

Проверить информацию

Группа: Выражения
Категория: Обязательно
Представлен в R2013b