Struct指针数组,获得段错误

时间:2015-04-22 06:20:01

标签: c++ pointers

我为以下内容获得了段错误:

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之后,在构造函数中

我没有得到段错误。

我觉得我有一些明显的遗漏。是什么导致了这个问题?

1 个答案:

答案 0 :(得分:1)

检查this指针,它可能无效。