[英]C++ Pointer assignment error
我主要有这两个类和一个测试用例:
class Mytest{
private:
int var;
public:
Mytest(int);
};
inline Mytest::Mytest(int a){var=a;}
class ControlClass{
private:
Mytest* m;
public:
void f();
};
int main (void)
{
ControlClass controlobject;
controlobject.f();
return 0;
}
void ControlClass::f(){
Mytest w(5);
Mytest* c=&w;
m[0]=*c;// crash line
}
最后一行让我崩溃了,我不知道为什么。 请帮我
您从未为成员指针分配内存
Mytest* m;
它只是一个未初始化的指针,并且像这样取消引用
m[0]=*c;// crash line
导致未定义的行为(例如,导致崩溃 )。
您需要为m
分配一些内存,这是一些选项
void ControlClass::f(){
Mytest w(5);
Mytest* c=&w;
m = new MyTest(); // Don't forget to delete in the destructor
// or whenever the resource isn't needed anymore
m[0]=*c;
}
void ControlClass::f(){
Mytest w(5);
Mytest* c=&w;
static Mytest x;
m = &x;
m[0]=*c;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.