我为以下内容获得了段错误:
myclass.h
class myclass
{
struct stuSomething
{
...
stuSomething(){...}
};
public:
static myclass* Instance()
{
if (!instance)
new myclass();
return instance;
}
void myclass:someFun();
private:
static myclass *instance;
myclass();
stuSomething *stuStack[SAMPLE_QUANTITY];
};
myclass.cpp
myclass* myclass::instance;
myclass::myclass()
{
for(int i = 0; i < SAMPLE_QUANTITY; i++)
this->stuStack[i] = NULL;
instance = this;
}
myclass::someFun()
{
for(int i = 0; i < SAMPLE_QUANTITY; i++)
if(this->stuStack[i] != NULL) // I get segfault here! for i = 0
...
}
但是,当我把
放进去的时候,我很高兴for(int i = 0; i < SAMPLE_QUANTITY; i++)
if(this->stuStack[i] != NULL)
...
在我填写stuStack之后,在构造函数中我没有得到段错误。
我觉得我有一些明显的遗漏。是什么导致了这个问题?
答案 0 :(得分:1)
检查this
指针,它可能无效。