﻿# V604\. Number of iterations in loop equals size of a pointer\. Consider inspecting the expression\.

Анализатор обнаружил потенциальную ошибку в конструкции, образующий цикл\. Цикл подозрителен тем, что количество итераций, которое он выполняет, равно sizeof\(указатель\)\. Высока вероятность, что количество итераций должно соответствовать размеру массива, на который ссылается указатель\.

Рассмотрим, как может возникнуть подобная ошибка\. В начале, программа выглядела так:

```cpp
char A[N];
for (size_t i=0; i < sizeof(A); ++i)
  A[i] = 0;
```

Затем, код программы менялся и массив 'A' стал иметь переменный размер\. Код стал некорректен:

```cpp
char *A = (char *)malloc(N);
for (size_t i=0; i < sizeof(A); ++i)
  A[i] = 0;
```

Теперь выражение "sizeof\(A\)" возвращает размер указателя, а не размер массива\.

Корректный вариант кода:

```cpp
char *A = (char *)malloc(N);
for (size_t i=0; i < N; ++i)
  A[i] = 0;
```