Вебинар: Стратегия без иллюзий: как превращать цели в результаты - 19.08
Анализатор обнаружил, что в операторе 'for' используются некорректные границы для итератора.
Рассмотрим пример:
for (int i = 0; i < 100; --i)
Очевидно, что данный фрагмент кода содержит ошибку. Значение переменной 'i' будет всегда меньше 100. По крайней мере до тех пор, пока не произойдёт её переполнение. Но вряд ли такое поведение задумывал программист. Для исправления ошибки необходимо в указанном выражении либо заменить оператор декремента '--i' на оператор инкремента '++i':
for (int i = 0; i < 100; ++i)
либо указать корректные границы для переменной 'i', использовав при этом оператор сравнения '>' или '!= ':
for (int i = 99; i >= 0; --i)
for (int i = 99; i != -1; --i)
Выбор наиболее подходящего варианта должен осуществлять автор кода на основе анализа конкретной ситуации.
Диагностическое правило классифицируется как:
Взгляните на примеры ошибок, обнаруженных с помощью диагностики V3116. |
Была ли полезна эта страница документации?
Мы ответим вам на:
Если вы так и не получили ответ, пожалуйста, проверьте, отфильтровано ли письмо в одну из следующих стандартных папок: