社区
C++ 语言
帖子详情
是我对 指针理解错了么?
lantuling
2011-11-06 01:17:13
struct Node
{
int data;
Node *next;
};
Node *pr;
pr=new Node;
假如我 delete pr; 之后
if(pr!=NULL)
{
}
他竟然走大括号里的内容
即使我
if(pr->next!=NULL)
{
}
照样走。。。。
...全文
163
13
打赏
收藏
是我对 指针理解错了么?
struct Node { int data; Node *next; }; Node *pr; pr=new Node; 假如我 delete pr; 之后 if(pr!=NULL) { } 他竟然走大括号里的内容 即使我 if(pr->next!=NULL) { } 照样走。。。。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
13 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
lantuling
2011-11-09
打赏
举报
回复
[Quote=引用 12 楼 gotoit 的回复:]
编程习惯啊,不够严谨。
[/Quote]
yeah。。。这还不是 编程习惯的问题 是我对指针的理解不够扎实 谢谢各位了 理解~
zzcmx2008
2011-11-06
打赏
举报
回复
delete只是将pr指向的内存给释放掉,但是并没有将pr置为NULL,所以pr的值并不是NULL,所以进入你的if判断了,所以建议:
delete pr;
pr=NULL;
gotoit
2011-11-06
打赏
举报
回复
编程习惯啊,不够严谨。
btloveet
2011-11-06
打赏
举报
回复
楼上正解!
quwei197874
2011-11-06
打赏
举报
回复
delete pr
pr = NULL;
jixingzhong
2011-11-06
打赏
举报
回复
delete只是释放内存,但是没有改变指针的值。
所以,一般都建议:
delete pr;
pr=NULL;
lantuling
2011-11-06
打赏
举报
回复
[Quote=引用 1 楼 mingliang1212 的回复:]
Node *pr;
pr=new Node;
假如我 delete pr; 之后
if(pr!=NULL)
{
}
他竟然走大括号里的内容
、、、、、、、、当然走里面去了,你delete pr;后pr的值是不变的,只是释放他指向的地址的内存。
即使我
if(pr->next!=NULL) //pr所指的内容已经被释放,再去访问他……
[/Quote]
噢噢明白了 所以好的编程习惯是 一释放 就立即NULL了? 这C++学的 不扎实啊
lantuling
2011-11-06
打赏
举报
回复
[Quote=引用 8 楼 caddor 的回复:]
看到2楼,才懂楼主想问什么
[/Quote]
我的表达能力这么偨???
qyxqyxqyx
2011-11-06
打赏
举报
回复
走你~~~~
caddor
2011-11-06
打赏
举报
回复
看到2楼,才懂楼主想问什么
guoweid
2011-11-06
打赏
举报
回复
楼上说的有理。
传说中的野指针就是你这样造成的,delete pr;但是没有pr = null;自然pr就变成了野指针,再次使用的时候就会出问题。
jixiang1983
2011-11-06
打赏
举报
回复
delete pr后,pr成野指针,在pr上的任何查找赋值等操作都是没有意义的,应立即把pr的值设为空
iamnobody
2011-11-06
打赏
举报
回复
Node *pr;
pr=new Node;
假如我 delete pr; 之后
if(pr!=NULL)
{
}
他竟然走大括号里的内容
、、、、、、、、当然走里面去了,你delete pr;后pr的值是不变的,只是释放他指向的地址的内存。
即使我
if(pr->next!=NULL) //pr所指的内容已经被释放,再去访问他的内容(pr->next)是非法的行为。访问的是未知内存的值,所以可能不为0
{
}
照样走。。。。
如何正确的
理解
指针
和结构体
指针
?
作者一直觉得C语言较其他语言最伟大的地方就是C语言中的
指针
,有些人认为
指针
很简单,而有些人认为
指针
很难,当然这里的对简单和难并不是等价于对
指针
的
理解
程度。为此作者在这里对C语言中的
指针
进行全面的总结,从...
指针
是什么?
指针
怎么
理解
?怎么
理解
指针
?最简单最通俗的讲解,即使不
理解
,记住之后也会
理解
代码,非常有效,希望对你有帮助!
指针
是什么 1 int * p; 重点:大家肯定知道 int i 或int p这是用来定义一个int类型的变量i,p。...3对下面代码的
理解
,这几句非常常见。 int *p; 这个变量p可以保存其他变量的地址(上面说过) int i; 不用解释
野
指针
?悬空
指针
? 一文带你搞懂!
,C/C++、面试、刷题、算法尽管咨询我,关注我,有问题私聊! ???? 关注专栏:C/C++面试通关集锦(优质好文持续更新中……)???? 目录 一、野
指针
二、悬空
指针
2.1 情况一 2.2 情况二 2.3 情况三 野
指针
和...
对
指针
和引用的
理解
?
指针
和引用的区别?
对
指针
和引用的
理解
?
指针
和引用的区别?
如何
理解
结构体
指针
?
大家学过数据结构的应该知道链表都需要用一个结构体进行定义。楼主在学到链表这一章的时候,被这个结构体以及结构体
指针
弄得有点晕,因此想跟大家分享一下我的
理解
。 用数据结构中的链表的定义来举例: ...
C++ 语言
64,637
社区成员
250,559
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章