| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 871 人关注过本帖
标题:野指针问题
只看楼主 加入收藏
幻景7
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2008-3-22
收藏
 问题点数:0 回复次数:6 
野指针问题
class A
{
public:
int s;
void Func(void){ cout << "Func of class A" << endl; }
};
void Test(void)
{
A *p;
{
A a;
a.s=5;
p = &a;
}
p->Func();// p是"野指针"
cout<<p->s<<endl;
}
对于这段代码,p成为了野指针为什么还能正确输出结果呢,特别是对于cout<<p->s<<endl;这个涉及成员变量的输出的
搜索更多相关主题的帖子: 指针 
2008-06-06 11:55
yyow3193
Rank: 1
来 自:三峡宜昌
等 级:新手上路
帖 子:165
专家分:0
注 册:2008-6-5
收藏
得分:0 
我只对家指针有兴趣
2008-06-06 13:38
漫游者李李西
Rank: 1
等 级:新手上路
帖 子:110
专家分:0
注 册:2007-11-11
收藏
得分:0 
野指针不是说不能输出,只不过它指向的内存内容可能被其他函数更改。

2008-06-06 14:11
wltysy
Rank: 1
等 级:新手上路
帖 子:560
专家分:0
注 册:2008-5-2
收藏
得分:0 
cout
2008-06-06 14:11
中学者
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:20
帖 子:3554
专家分:80
注 册:2007-9-14
收藏
得分:0 
很简单,在栈上的局部变量的释放只是栈指针的移动,所以内存上的内容仍然还在.....只是这种做法是不道德的....具体请看<effective C++>

樱花大战,  有爱.
2008-06-06 14:14
tianfuchao
Rank: 1
来 自:吉林
等 级:新手上路
帖 子:28
专家分:0
注 册:2008-5-27
收藏
得分:0 
不会  迷茫  
2008-06-06 16:51
幻景7
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2008-3-22
收藏
得分:0 
这里不能结贴的吗
2008-06-06 17:39
快速回复:野指针问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.014447 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved