C++ 结构指针数组,获取segfault
我得到以下方面的错误: myclass.hC++ 结构指针数组,获取segfault,c++,pointers,C++,Pointers,我得到以下方面的错误: myclass.h class myclass { struct stuSomething { ... stuSomething(){...} }; public: static myclass* Instance() { if (!instance) new myclass(); return instance; } void
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
...
}
myclass*myclass::instance;
myclass::myclass()
{
对于(int i=0;i<样本数量;i++)
此->堆栈[i]=NULL;
实例=此;
}
myclass::someFun()
{
对于(int i=0;i<样本数量;i++)
如果(this->stuStack[i]!=NULL)//我在这里得到segfault!对于i=0
...
}
但是当我把
for(int i = 0; i < SAMPLE_QUANTITY; i++)
if(this->stuStack[i] != NULL)
...
for(int i=0;istuStack[i]!=NULL)
...
在构造函数中,在我填充stuStack之后,我没有得到segfault
我觉得我明显遗漏了什么。问题的原因是什么?检查
这个指针,它可能无效。请创建一个演示如何使用类和函数的指针。这个指针有效吗?stustack成员变量一般来说,不要在构造函数中设置静态成员变量。而是在Instance
静态成员函数中执行,例如Instance=newmyclass代码>。这就是为什么获取main也很重要的原因,这样我们就可以知道您如何调用函数以及您在做什么