C6280
Предупреждение C6280: <переменная> выделяется <функцией>, но удаляется <функцией>.
Данное предупреждение означает, что вызывающая функция несогласованно выделила память с помощью функции из одного семейства выделения памяти, а освободила ее с помощью функции из другого семейства выделения памяти.
Например, это предупреждение будет создано, если память выделяется с помощью функции malloc, а освобождается с помощью функции GlobalFree или delete. Обратите внимание, что в определенных случаях несоответствия между массивом new[] и скалярной функцией delete (или наоборот) выводятся более конкретные предупреждения.
Пример
Это предупреждение создается в следующем примере кода:
#include <stdlib.h>
void f(int arraySize)
{
int *pInt;
pInt = (int *)calloc(arraySize, sizeof (int));
// code ...
delete pInt;
}
Для устранения этого предупреждения используйте следующий пример кода:
#include <stdlib.h>
void f(int arraySize)
{
int *pInt;
pInt = (int *)calloc(arraySize, sizeof (int));
// code ...
free(pInt);
}
Разные определения интерфейсов API могут использовать разные кучи. Например функция GlobalAlloc использует системную кучу, а функция GlobalFree использует кучу C. Эта ошибка может привести к повреждениям памяти и сбоям.