Compartilhar via


C6280

Aviso C6280: <variável>é alocada com <função>, mas excluído com <função>

Este aviso indica que a função chamada inconsistentemente alocado memória com uma função da família de alocação de memória de um e liberou-lo com uma função de outra família de alocação de memória.

Por exemplo, esse aviso deve ser produzido se a memória é alocada com malloc liberado, mas com GlobalFree ou delete. Observe que em casos específicos de incompatibilidades entre matriz new[] e escalar delete (ou vice-versa) avisos mais precisos são relatados em vez disso.

Exemplo

O código de exemplo 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 código de exemplo a seguir:

#include <stdlib.h>
void f(int arraySize)
{
  int *pInt;
  
  pInt = (int *)calloc(arraySize, sizeof (int));
  // code ...
  free(pInt);
}

Definições de API diferentes podem usar diferentes heaps.Por exemplo, GlobalAlloc usa heap do sistema e usa C heap disponível.Esse defeito tem probabilidade de causar corrupção de memória e travamentos.

Consulte também

Referência

calloc

malloc

livre

operador Novo (&LT; Novo >)

Excluir Operador (C++)