Compartilhar via


C6283

Aviso C6283: <variable> é alocada com array [novo], mas excluída com delete escalar

Esse aviso aparece somente no código em C++ e indica que a função de chamada tem inconsistentemente memória alocada com a matriz new [] operador, mas liberado com a scalar delete operador. Esse defeito pode causar vazamentos de corrupções de memória e, em situações onde operadores tem sido substituídos, travamentos. Se a memória é alocada com matriz new [], que normalmente deve ser liberado com matriz delete[].

Exemplo

O código a seguir gera este aviso:

void f( )
{
  char *str = new char[50];
  // code ...
  delete str;
}

Para corrigir esse aviso, use o seguinte código:

void f( )
{
  char *str = new char[50];
  // code ...
  delete[] str;
}

Aviso C6283 se aplica somente a matrizes de tipos primitivos como números inteiros ou caracteres. Se os elementos da matriz são objetos da classe digite aviso, em seguida, C6278 é emitido.