new一块内存,为什么 两次delete它却没有内存错误?
int main()
{
int* pp=new int;
delete pp;
delete pp;
getchar();
return 0;
}
怎么没有错?
什么情况才会出现删除同一块内存的内存错误?
[解决办法]
肯定是错误的.
[解决办法]
应该是会出错的
[解决办法]
int main()
{
int* pp=new int;
delete pp;
delete pp;
getchar();
return 0;
}
怎么没有错?
什么情况才会出现删除同一块内存的内存错误?
---
不要被暂时的假象迷惑,如果在大的项目中有类似的代码,问题可就大了
可能出现逻辑正确,但结果错误的情况
[解决办法]
怎么没有错?
多次删除不会出错
什么情况才会出现删除同一块内存的内存错误?
两个指针指向同一个对象,
[解决办法]
depend on rp
[解决办法]
不出现错误不代表没有错误。
可以试着构造这样一种情况:
new一块内存char *a1 = new char[1024];
然后a2也指向这块内存。
delete a1;
然后新new一个对象,此时新new的这个对象就有可能使用的是刚刚释放的空间。
。。。对新new的对象进行操作
delete a2;
....对新new的对象进行操作(此时,可能有灾难性行为出现)
[解决办法]
你在多少个平台上测过没有问题, 我这好几个地方出问题 ...
顶 ..
todototry(来csdn,学会扯淡了...) ( ) 信誉:100 Blog 加为好友 2007-04-18 15:57:21 得分: 0
depend on rp
[解决办法]
我这都有报错啊~~
[解决办法]
mark~
[解决办法]
我这里是报错的,我用的是VC6.0