返回信息流class A
{
private:
int n;
public:
void f()
{
A* a=NULL;
a->n;//改制了可以执行,为什么int x = a->n错误
int b= &(a->n);//b=0
}
};
f()里面为什么可以不能访问a->n,却可以执行访问&(a->n)
这是一条镜像帖。来源:北邮人论坛 / cpp / #26939同步于 2009/8/4
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
问个c++指针问题
bofrobber
2009/8/4镜像同步5 回复
订阅后,新回复会通过你的通知中心匿名送达。
5 条回复
【 在 bofrobber 的大作中提到: 】
: class A
: {
: private:
: ...................
lz用的啥编译器?我用g++可以通过编译(int b =(int)&(a->n)),但是插入
int main(){
A a;
std::cout<<"testing"<<std::endl;
a.f();
}
时运行时错误啊
PS:编译器是无法知道对象是否已经初始化了,编译器做的就是产生相应的机器代码,越段访问时操作系统会终止用户程序并提示