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:
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:
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.
If you feel like the New Year just came, and you missed the first half of January, then all this ...