﻿# V819\. Decreased performance\. Memory is allocated and released multiple times inside the loop body\.

The analyzer has detected a construct that could be optimized\. A memory block of the same size is allocated and released multiple times inside a loop body\. To increase the program's performance, take the code performing memory allocation and release out of the loop into a separate code block\.

Consider the following example:

```cpp
for (int i = 0; i < N; i++)
{
  int *arr = new int[1024 * 1024];
  SetValues(arr);
  val[i] = GetP(arr);
  delete [] arr;
}
```

Memory allocation and release can be taken out of the loop and implemented as a separate code block\.

Improved code:

```cpp
int *arr = new int[1024 * 1024];
for (int i = 0; i < N; i++)
{
  SetValues(arr);
  val[i] = GetP(arr);
}
delete [] arr;
```

Similarly, the analyzer may suggest optimizing code where memory is allocated using function 'malloc' and the like\.