您当前的位置: 百科371电脑/网络C/C++ → 电脑/网络内容 退出登录 用户管理 用户注册
本类热门文章
相关文章
中原建材网
所谓多次删除问题指的是什么?

减小字体 增大字体

问题:所谓多次删除问题指的是什么?  

应该是指多次delete从堆中分配的内存的指针吧。
比如:
int *p=new int;
delete p;
delete p;//这里就是多次删除指向堆中的内存的指针p。上一句代码已经释放了在堆中分配的sizeof(int)大小的、由p保存着首地址的内存,但p此时仍保存着这块内存的地址,再一次删除这块已经不属于你的内存(通俗地讲就是这个意思)就会发生不可预料的后果。所以一般地,在执行完delete *p;后,应该将p值为0。
还有一种情况正如楼上所说的,用代码表示如下:
int *p=new int;
int *q=p;
delete p;
delete q;//至此之前,p指向的堆中的内存已经释放完毕,再执行本语句就会发生与上个例子一样的结果。

如果你对所谓多次删除问题指的是什么?这个问题有好的意见或 建议,请留言
[] [返回上一页] [打 印]
电脑/网络评论 (评论内容只代表网友观点,与本站立场无关!)

用户名: 查看更多评论

分 值:100分 85分 70分 55分 40分 25分 10分 0分

内 容:

         (注“”为必填内容。) 验证码: 验证码,看不清楚?请点击刷新验证码

中原建材网 简单版 站长QQ:382546553