MISRA C++:2008 Rule 5-0-15

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

Описание

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

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

Объяснение

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

  • Увеличьте или уменьшите индекс массива, а затем используйте индекс массива для доступа к элементу.

  • Увеличьте или уменьшите указатель на массив, а затем разберите указатель.

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

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

Реализация Polyspace

Флажки шашки:

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

  • Индексация массивов по немассовым указателям.

Поиск и устранение проблем

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

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

Группа: Выражения
Категория: Требуемая
Введенный в R2013b