困扰菜鸟界多年的问题,一个C++内存问题,这段代码并不会崩溃,请问这是为什么。
#include <iostream>
using namespace std;
int main()
{
int *p =new int;
delete p;
p=NULL;
delete p;
return 0;
}
[解决办法]
因为delete一个指针没有任何效果,这点是C++语言规定的。
[解决办法]
去看《Effective C++》2e item 8,因为C++标准有特别规定,delete NULL合法无错。