V611. The memory allocation and deallocation methods are incompatible.


Анализатор обнаружил потенциальную ошибку связанную с тем, что память может выделятьcя и освобождаться несовместимыми между собой способами. Например, анализатор предупредит, если память выделена с помощью оператора 'new', а освобождается с помощью функции 'free'.

Рассмотрим пример некорректного кода:

int *p = (int *)malloc(sizeof(int) * N);
...
...
delete [] p;

Исправленный вариант:

int *p = (int *)malloc(sizeof(int) * N);
...
...
free(p);

Согласно Common Weakness Enumeration, потенциальные ошибки, найденные с помощью этой диагностики, классифицируются как CWE-590, CWE-762.

Взгляните на примеры ошибок, обнаруженных с помощью диагностики V611.


А ты совершаешь ошибки в коде?

Проверь с помощью
PVS-Studio

Статический анализ
кода для C, C++ и C#

goto PVS-Studio;