我刚开始使用c ++,而且我有一个问题,指向一个类的memeber地址。 当我编译时没有错误,但是当我运行它时程序会中断。
class vise
{
public:
int h1=10;
int n1=12;
int *x;
int set();
};
class vodv
{
public:
vise *v;
int g;
};
int vise::set()
{
h1=5;
return 0;
}
此行打破了程序
vodv f;
vise v1;
(f.v)->x=&(v1.n1);
答案 0 :(得分:2)
您没有为v
分配内存,所以当您尝试访问它时:
(f.v)->x = &(v1.n1);
^^^
Dereferences 'v'
v
可以指向任何内存地址。取消引用它是未定义的行为,有时(它毕竟是未定义的)会导致程序崩溃。