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。