Поделиться через


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.