野指针问题
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;这个涉及成员变量的输出的
搜索更多相关的解决方案:
指针
----------------解决方案--------------------------------------------------------
我只对家指针有兴趣
----------------解决方案--------------------------------------------------------
野指针不是说不能输出,只不过它指向的内存内容可能被其他函数更改。
----------------解决方案--------------------------------------------------------
cout
----------------解决方案--------------------------------------------------------
很简单,在栈上的局部变量的释放只是栈指针的移动,所以内存上的内容仍然还在.....只是这种做法是不道德的....具体请看<effective C++>
----------------解决方案--------------------------------------------------------
不会 迷茫
----------------解决方案--------------------------------------------------------
这里不能结贴的吗
----------------解决方案--------------------------------------------------------