# V767. Suspicious access to element by a constant index inside a loop.

Анализатор обнаружил возможную ошибку, связанную с тем, что в цикле 'for' на каждой итерации к элементу массива или контейнера обращаются по одному и тому же константному индексу.

Рассмотрим пример некорректного кода:

    void Foo(vector<size_t> &vect)
    {
      for (size_t i = 0; i < vect.size(); i++)
        vect[0] *= 2;
    }

В данной функции хотели изменить все значения, хранящиеся в векторе, однако из-за опечатки доступ к элементам вектора осуществляется не по счётчику цикла 'i', а по константному значению - 0. В итоге будет изменено только одно значение (если вектор не пустой).

Для исправления ошибки необходимо правильно переписать обращение к элементам контейнера:

    void Foo(vector<size_t> &vect)
    {
      for (size_t i = 0; i < vect.size(); i++)
        vect[i] *= 2;
    }

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