搜索
编程论坛
→
开发语言
→
C++论坛
→
『 C++教室 』
→ 关于delete后的问题?
标题:
关于delete后的问题?
只看楼主
newyj
等 级:
新手上路
威 望:
3
帖 子:542
专家分:0
注 册:2008-1-4
楼主
问题点数:0 回复次数:11
关于delete后的问题?
删除 动态指针后 会变成 悬垂指针 应将指针置为零
怎么实现
能否给出代码
搜索更多相关主题的帖子:
delete
2008-05-08 21:54
aipb2007
来 自:CQU
等 级:
贵宾
威 望:
40
帖 子:2879
专家分:7
注 册:2007-3-18
第
2
楼
得分:0
悬垂指针是这个意思,但是并非单一的delete后出现的。
举个例子
int *p = new int(1);
假设这里插入N多代码
int *p2 = p;
假设再插入N多代码
delete p; //这里释放了,也知道p不能使用了,是个悬垂的,最好置0
假设又插入N多代码
f(p2); //以为p2还可以用,没释放过嘛,结果运行到某个时候崩溃
这里才是悬垂指针的危险性,这样的错误再大型系统里很难很难debug,也很难避免,置0什么的也没用,只有经验再经验,细心再细心
Fight to win or die...
2008-05-09 00:21
newyj
等 级:
新手上路
威 望:
3
帖 子:542
专家分:0
注 册:2008-1-4
第
3
楼
得分:0
谢谢了
那置零 是编译器自己操作 还是 得手工操作
2008-05-09 11:56
zzy840208
等 级:
新手上路
帖 子:16
专家分:0
注 册:2008-4-16
第
4
楼
得分:0
手工操作
如:int *p=new int(8);
...
delete p;
p=o0;
2008-05-09 12:12
newyj
等 级:
新手上路
威 望:
3
帖 子:542
专家分:0
注 册:2008-1-4
第
5
楼
得分:0
删除P P这个变量删除不
那置零后 P还能不能再被赋值
2008-05-09 12:55
sunkaidong
来 自:南京师范大学
等 级:
贵宾
威 望:
12
帖 子:4496
专家分:141
注 册:2006-12-28
第
6
楼
得分:0
可以..你自己写个了例子看看啊
学习需要安静。。海盗要重新来过。。
2008-05-09 22:12
Aegisys
等 级:
新手上路
帖 子:19
专家分:0
注 册:2008-5-10
第
7
楼
得分:0
#define SAFE_DELETE(f) \
delete f; \
f = NULL;
2008-05-10 21:24
zhfsxtx
等 级:
新手上路
帖 子:11
专家分:0
注 册:2008-5-11
第
8
楼
得分:0
我是菜鸟
请问P被 DELETE 之后其作用域不就结束了吗?
为什么还可以出现对其制0(P=0)这样的语句?就象
///*{
int a;
......
}
a=5; *////
有效吗?
2008-05-11 04:12
Aegisys
等 级:
新手上路
帖 子:19
专家分:0
注 册:2008-5-10
第
9
楼
得分:0
作用域不会结束..
指针变量和DWORD变量没有任何区别,只不过它的内容是地址而已.
delete p; 释放的是p指向的内存,而不是p这个变量
2008-05-11 10:49
Aegisys
等 级:
新手上路
帖 子:19
专家分:0
注 册:2008-5-10
第
10
楼
得分:0
多看看<高质量C++/C程序设计>(作者林锐),关于指针方面就会明白不少
2008-05-11 10:50
12
1/2页
1
2
参与讨论请移步原网站贴子:
https://bbs.bccn.net/thread-213241-1-1.html
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.707003 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved