C6280
Aviso C6280: <variable> alocados com <function>, mas excluída com <function>
Este aviso indica que a função de chamada inconsistentemente alocada a memória com uma função da família de alocação de memória de um e liberado-lo com uma função a partir de outra família de alocação de memória.
Por exemplo, esse aviso seria produzido se a memória é alocada com malloc , mas liberado com GlobalFree ou delete. Observe que, em casos específicos de incompatibilidades entre matriz new[] e scalar delete (ou vice-versa), avisos de mais precisos são relatados em vez disso.
Exemplo
O exemplo de código a seguir gera este aviso:
#include <stdlib.h>
void f(int arraySize)
{
int *pInt;
pInt = (int *)calloc(arraySize, sizeof (int));
// code ...
delete pInt;
}
Para corrigir esse aviso, use o exemplo de código a seguir:
#include <stdlib.h>
void f(int arraySize)
{
int *pInt;
pInt = (int *)calloc(arraySize, sizeof (int));
// code ...
free(pInt);
}
Definições de API de diferentes podem usar heaps diferentes. Por exemplo, GlobalAlloc usa a pilha do sistema e livre usa c heap. Esse defeito pode causar corrupção de memória e travamentos.