Индексация массива должна быть единственной формой арифметики указателя
Индексация массива должна быть единственной формой арифметики указателя.
Можно обойти массив или контейнер двумя способами:
Увеличьте или уменьшите индекс массива или итератор, а затем используйте индекс массива или итератор для доступа к элементу.
Увеличьте или уменьшите указатель на массив, а затем разберите указатель.
Первый метод яснее и менее подвержен ошибкам.
Все другие формы явной арифметики указателя вводят риск доступа к непреднамеренным местам памяти.
Флажки шашки:
Арифметические операции для всех указателей, например 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 )Индексация массивов по немассовым указателям.
Если вы ожидаете нарушения правил, но не видите его, обратитесь к разделу «Стандартные нарушения кодирования не отображаются».
| Группа: Выражения |
| Категория: Необходимый, Автоматизированный |