C++指针分配错误
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;
}
相关文章:
- vector.resize()中的分配错误
- 多个文件的内存分配错误"在抛出 'std :: bad_alloc' what (): std :: bad_alloc 的实例后终止调用" [C++]
- 正在理解智能指针,但出现错误:未分配正在释放的指针
- 如何修复只读对象中成员的错误分配?
- 无法将错误分配给成员函数中"类型的实体"
- 分段错误分配函数结果
- 如何实现,错误分配中止而不是抛出异常
- C++代码错误分配
- 如何修复错误分配C++运行时错误
- 分段错误 - 分配类困难
- 带有数组类型表达式的错误分配
- Sprintf 缓冲区问题,错误分配给字符数组
- 而 (p=strtok(NULL, "," )) 警告:p可识别的错误分配
- 错误:分配只读位置“arr2.IntArray::operator[](1)”arr2[1]=24;
- std::映射错误分配错误
- 为什么"e.what()"打印"错误分配"?
- std::vector<const char *>的错误分配效果?
- 使用指向类的指针进行错误分配
- 错误:分配只读引用“__b”
- 向量错误分配错误 C++