exponenta event banner

MISRA C:2012 Правило 18.1

Указатель, полученный в результате арифметики операнда указателя, должен адресовать элемент того же массива, что и операнд указателя

Описание

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

Указатель, полученный в результате арифметики операнда указателя, должен адресовать элемент того же массива, что и операнд указателя.

Объяснение

Использование недопустимого индекса массива может привести к ошибочному поведению программы. Индексы массива, полученные во время выполнения, особенно сложны, поскольку их невозможно легко проверить с помощью ручного обзора или статического анализа.

Стандарт C определяет создание указателя на объект за пределами массива. Правило разрешает использование стандарта C. Отмена ссылки на указатель за пределами массива приводит к неопределенному поведению и является несоответствующим.

Внедрение Polyspace

При анализе Polyspace ® помечает это правило следующим образом:

Средство поиска ошибок и средство проверки кода проверяют это правило по-разному и могут показывать различные результаты для этого правила. В программе Code Prover можно также увидеть разницу в результатах на основе выбора опции. Verification level (-to). См. раздел Проверка нарушений стандартов кодирования.

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

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

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

Группа: указатели и массивы
Категория: Обязательно
Категория СМЖЛ: требуется