﻿# V574\. Pointer is used both as an array and as a pointer to single object\.

Анализатор обнаружил потенциально возможную ошибку, связанную с тем, переменная используется одновременно как указатель на один объект и как массив\.

Рассмотрим пример ошибки, которую анализатор нашёл сам в себе:

```cpp
TypeInfo *factArgumentsTypeInfo =
  new (GC_QuickAlloc) TypeInfo[factArgumentsCount];
for (size_t i = 0; i != factArgumentsCount; ++i)
{
  Typeof(factArguments[i], factArgumentsTypeInfo[i]);
  factArgumentsTypeInfo->Normalize();
}
```

Подозрительно, что с переменной factArgumentsTypeInfo мы работаем как с массивом "factArgumentsTypeInfo\[i\]" и как с указателем на один объект "factArgumentsTypeInfo \-\>"\. На самом деле необходимо вызвать функцию Normalize\(\) для всех элементов\. Исправленный вариант кода:

```cpp
TypeInfo *factArgumentsTypeInfo =
  new (GC_QuickAlloc) TypeInfo[factArgumentsCount];
for (size_t i = 0; i != factArgumentsCount; ++i)
{
  Typeof(factArguments[i], factArgumentsTypeInfo[i]);
  factArgumentsTypeInfo[i].Normalize();
}
```