C6283
Обновлен: Ноябрь 2007
C6283
Предупреждение C6283: <переменная> выделяется с массивом new [], но удаляется скалярной операцией delete.
Это предупреждение возникает только в коде C++ и указывает, что вызывающая функция неверно выделила память оператором массива new [], но освободила ее скалярным оператором delete. Это может привести к утечкам памяти, повреждению памяти и сбоям программы (при переопределении операторов). Если память выделяется при помощи оператора массива new [], ее следует освобождать при помощи оператора массива delete[].
Пример
Это предупреждение создается следующим кодом:
void f( )
{
char *str = new char[50];
// code ...
delete str;
}
Для устранения этого предупреждения используйте следующий код:
void f( )
{
char *str = new char[50];
// code ...
delete[] str;
}
Предупреждение C6283 применяется только к массивам примитивных типов, таких как целые числа и символы. Если элементы массива являются объектами типа класса, создается предупреждение C6278.