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.