我刚开始使用 C++,我在指向类(class)成员的地址时遇到了问题。 当我编译时没有错误,但当我运行它时程序中断。
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);
最佳答案
您没有为 v
分配内存,因此当您尝试访问它时:
(f.v)->x = &(v1.n1);
^^^
Dereferences 'v'
v
可以指向任意内存地址。取消引用它是未定义的行为,有时(毕竟它是未定义的)会使您的程序崩溃。
关于c++ - 类(class)成员指向类(class)成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38910120/