删除char数组.另类方式?

Dav*_*gea 1 c++

可能重复:
是否需要为char数组调用delete [] vs delete?

char *p = new char[200];

delete p;
Run Code Online (Sandbox Code Playgroud)

这种(我更改了var名称)代码来自一个大型商业项目.

第三行.这是正确的吗?我应该改变它还是留在那里.Coz没有错误报告,这个程序运行超过4年.

谢谢.

cni*_*tar 5

必须使用,delete[]因为你使用new[],它不是一个替代品.

delete [] p;
Run Code Online (Sandbox Code Playgroud)

  • 它恰好适用于Visual Studio,因为编译器为没有析构函数的类型生成`delete`和`delete []`的相同代码,比如`char`.尽管如此,它仍然是一个bug,即使它通过了所有测试用例. (2认同)