C6283
Ostrzeżenie C6283: <variable> jest przydzielana za pomocą tablicowego operatora new [], ale usuwana za pomocą usuwania skalarnego
Ostrzeżenie to pojawia się tylko w przypadku kodu C++ i wskazuje, że wywołująca funkcja niespójnie przydzieliła pamięć tablicowym operatorem new [], ale zwolniła go skalarnym operatorem delete.Ta wada może powodować przecieki, uszkodzenia pamięci i, w wypadkach, gdy operatory zostały nadpisane, awarie.Jeśli pamięć została przydzielona z tablicą new [], zazwyczaj powinna zostać uwolniona z tablicą delete[].
Przykład
Poniższy kod generuje to ostrzeżenie:
void f( )
{
char *str = new char[50];
// code ...
delete str;
}
Aby poprawić to ostrzeżenie, należy użyć następującego kodu:
void f( )
{
char *str = new char[50];
// code ...
delete[] str;
}
Ostrzeżenie C6283 dotyczy tylko tablic prymitywnych typów, takich jak liczby czy znaki.Jeśli elementy tablicy są obiektami typu klasy, wydawane jest ostrzeżenie C6278.