警告 C6283:<variable> 使用数组 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。
就内存泄露以及内存异常而言,new 与 delete 方法存在许多陷阱.若要完全避免这些泄漏和异常问题,请使用 C++ 标准模板库 (STL) 提供的结构。这些包括shared_ptr, unique_ptr, 和 vector有关更多信息,请参见智能指针(现代 C++)和C++ 标准库参考。