Getter returning SegFault
Getter returning SegFault
想象这在关卡中。hh文件:
Class Level {
private:
int size;
float** a_predefined_2d_array;
public:
int GetSize();
int SetSize(int);
int DoSomething();
int Load(string, int);
};
想象这在关卡中。cc文件:
int Level::GetSize() {
return size;
}
int Level::SetSize(int _size) {
size = _size
}
int Level::Load(string str, int _size) {
SetSize(_size); //works fine!
cout<<GetSize()<<endl; //works fine!
//basically loads everything to initiliaze the program. The point is that the above calls work fine!
}
//The problem is here!!!
int Level::DoSomething() {
a_predefined_2d_array = new float*[GetSize()]; //SEG FAULTS!!!
cout<<"size = "<<GetSize()<<endl; //SEG FAULTS!!!
}
为什么GetSize()方法会出现分段错误?不处理同一类的其他方法是没有意义的。我也可以提供一个链接到Github上的实际项目,如果需要的话。但我还不想说到那一点。
以前有人遇到过同样的问题吗?这不是定义错误的问题,因为我在Load()方法上测试了它。
下面是一个在GCC上编译和运行的示例,修改很小(包括简单的零初始化)。
Level l{};
l.DoSomething();
如果在调用DoSomething()
之前给size
赋值,则不会得到段错误。
Live on Coliru.
相关文章:
- C++中带有List类的迭代器Segfault
- 使用Vulkan hpp vk::enumerateInstanceVersion()会导致segfault
- SegFault 同时使用 std::string::operator+= 和函数作为参数
- std::partition segfault issue
- OpenSSL: EC_POINT_set_compressed_coordinates_GFp segfault
- ZLib GZIP Returning Z_BUF_ERROR(-5)
- C++:寻找"returning address of local variable..."的更正
- 检查nullptr是否100%保护内存布局不受segfault影响
- OpenCV Tracker 属性访问在 ARM 上因 SEGFAULT 而失败,但在 X86_64 中工作
- cin.fail() not returning true
- "Warning : No return statement in function returning non-void"是什么意思?
- 为什么优化大型 std::vector 数组会导致 SegFault?
- C++segfault,可重复的例子
- 带有zip_source_buffer的libzip会导致数据损坏和/或segfault
- 导致SegFault C++的析构函数
- 从引用的Vector获取SEGFAULT
- 尝试读取/写入Graphviz DAG值的工作证明会导致segfault
- Segfault如果更改派生类的指针值
- SegFault deleting QTreeWidgetItem
- Getter returning SegFault