C6283
upozornění C6283: Proměnná <variable> se alokuje pomocí pole new [], ale je odstraňována skalárním delete
Toto upozornění se zobrazí pouze v kódu jazyka C++ a označuje, že volající funkce má nekonzistentně přidělenou paměť operátorem new [] pole, avšak uvolněnou operátorem delete skaláru.Tato vada může způsobovat nevracení paměti, její poškození a v situacích, kdy jsou operátory přepsány, dojde k chybě.Pokud je paměť přidělena new [] pole, obvykle by měla být uvolněna delete[] pole.
Příklad
Následující kód generuje toto upozornění:
void f( )
{
char *str = new char[50];
// code ...
delete str;
}
Pro opravu tohoto upozornění použijte následující kód:
void f( )
{
char *str = new char[50];
// code ...
delete[] str;
}
Upozornění C6283 se týká pouze polí primitivních typů, například celých čísel nebo znaků.Pokud jsou prvky pole objekty typu třídy, pak je vydáno upozornění C6278.