C6283

警告 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