Индексация массива должна быть единственной формой арифметики указателя
Индексация массива должна быть единственной формой арифметики указателя.
Можно пройти массив или контейнер двумя способами:
Приращение или уменьшение индекса массива или итератора, а затем использование индекса массива или итератора для доступа к элементу.
Приращение или уменьшение указателя на массив, а затем отмена привязки указателя.
Первый метод является более четким и менее подверженным ошибкам.
Все другие формы явной арифметики указателей создают риск доступа к непреднамеренным ячейкам памяти.
Флаги средства проверки:
Арифметические операции для всех указателей, например p+I, I+p и p-I, где p является указателем и I целое число.
Исключение допускается для итераторов, указывающих на элементы в контейнерах, например: it ниже:
std::vector<int> intList{ 1,2,3,4 };
for( auto it = intList.begin() ; it != intList.end() ; ++it )Индексирование массива на указателях, не являющихся массивами.
Если вы ожидаете нарушения правила, но не видите его, обратитесь к разделу Нарушения стандартов кодирования не отображаются.
| Группа: Выражения |
| Категория: Обязательно, Автоматизировано |