Анализатор обнаружил, что переменная не используется после того, как для нее была динамически выделена память. Стоит проверить код на наличие ошибки, либо удалить неиспользуемую переменную.
Рассмотрим пример:
void Func() { int *A = new int[X]; int *B = new int[Y]; int *C = new int[Z]; Foo(A, X); Foo(B, Y); Foo(B, Z); // <= delete [] A; delete [] B; delete [] C; }
Здесь была допущена опечатка, и вместо массива 'C' третий вызов функции 'Foo' использует массив 'B'. Анализатор обнаруживает здесь аномалию, что выделяется и освобождается память, но при этом она никак не используется. Исправленный вариант кода выглядит следующим образом:
void Func() { int *A = new int[X]; int *B = new int[Y]; int *C = new int[Z]; Foo(A, X); Foo(B, Y); Foo(C, Z); // <= delete [] A; delete [] B; delete [] C; }
Взгляните на примеры ошибок, обнаруженных с помощью диагностики V799. |