c++ 中delete一指针后,该指针的是什么?是 NULL 吗?

 我来答
果建翼
2011-07-15 · TA获得超过7923个赞
知道大有可为答主
回答量:1684
采纳率:0%
帮助的人:2421万
展开全部
delete一个指针之后,只是回收指针指向位置的空间,而指针本身的值不变。你需要手工将其赋值为NULL。

另外delete NULL的话不会有任何事情发生。
x68251
2011-07-15 · TA获得超过602个赞
知道小有建树答主
回答量:470
采纳率:0%
帮助的人:275万
展开全部
delete删除的只是该指针指向的内存,该指针变成一个野指针,需要重置为NULL。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jiangchaokenan
2011-07-15 · TA获得超过342个赞
知道答主
回答量:162
采纳率:0%
帮助的人:119万
展开全部
不是 delete后就变成悬垂指针 就是没有用的指针了
最好自己将他指向NULL
如 delete p;
p = 0; // 0 == NULL
这样就安全了。
否则会产生不必要的后遗症(在大型程序里你就会懊恼了,当然这个我也不太懂了)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2011-07-15
展开全部
c++ 中delete一指针后,该指针为野指针。其值不变,还是指向原来的单元,但若访问这个单元,结果是无法预料的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yzoqsphtp
2011-07-16 · TA获得超过312个赞
知道小有建树答主
回答量:529
采纳率:0%
帮助的人:404万
展开全部
这书我看过了 C++沉思录 C++Primer 上面都提到智能指针 是这样的:U_Ptr这个类算是代理类吧(有时叫它句柄类 其实我也不知道为什么) 因为它有计数 计数的是有多少个对象是U_Ptr类代理的类(原始的) 每创建或者复制这种类型的对象 实际上在U_Ptr中的计数加1(有多少个原始的类类型的对象指向U_Ptr) 只有一个U_Ptr指向原始的类(或是别的) 注意:当U_Ptr中的计数为0时就是没有对象对向他 所以执行delete p 而代理类本身没有动态申请堆空间 释放的只是原始类(U_Ptr指向的)申请的空间 我觉得你没有弄清楚指针P和U_Ptr之间的区别

会的!P成为野指针 如果在访问P将出错 因为P指向的内存空间以不在 但P还是指向原来的地方啊…
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式