Freigeben über


C6283

Warnung C6283: <Variable> wird mit dem new []-Arrayoperator zugeordnet, aber mit dem delete-Skalaroperator gelöscht.

Diese Warnung wird nur in C++-Code angezeigt. Sie gibt an, dass die aufrufende Funktion mit dem new []-Arrayoperator Speicher inkonsistent belegt, diesen jedoch mit dem delete-Skalaroperator freigegeben hat. Dieser Fehler kann Verluste, Speicherbeschädigungen, und, wenn Operatoren überschrieben wurden, Abstürze verursachen. Wenn Speicher mit dem new []-Arrayoperator belegt wird, wird er i. d. R. mit dem delete[]-Arrayoperator freigegeben.

Beispiel

Der folgende Code generiert diese Warnung:

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

So korrigieren Sie die Warnung unter Verwendung des folgenden Codes

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

Warnung C6283 gilt nur für Arrays von primitiven Typen, z. B. ganze Zahlen oder Zeichen. Wenn Elemente des Arrays Objekte des Klassentyps sind, wird die Warnung C6278 ausgegeben.