C++ 访问空指针导致seg故障
我有一个基于模板的类:C++ 访问空指针导致seg故障,c++,segmentation-fault,C++,Segmentation Fault,我有一个基于模板的类: template <typename T> class Foo { public: Foo(); bool iterateFoos(); private: Foo<T> *babyFoos[5]; }; 模板 福班 { 公众: Foo(); bool iterateFoos(); 私人: Foo*婴儿食品[5]; }; 在构造函数中,我将所有babyFoos设置为NULL: tem
template <typename T>
class Foo
{
public:
Foo();
bool iterateFoos();
private:
Foo<T> *babyFoos[5];
};
模板
福班
{
公众:
Foo();
bool iterateFoos();
私人:
Foo*婴儿食品[5];
};
在构造函数中,我将所有babyFoos设置为NULL:
template <typename T>
Foo<T>::Foo()
{
for(int i =0; i<5; i++) babyFoos[i] = NULL;
}
模板
Foo::Foo()
{
对于(int i=0;i如果它真的是导致segfault的If
条件本身,这意味着iterateFoos()中this
的值无效-也许你在调用它时取消了对空指针/悬挂指针的引用。请发布一个显示该行为的小程序。请发布iterateFoos()
或者i
超出了babyFoo
的范围(或者此
)不包含合理的值。发布完整的代码。@MikeCorcoran我认为这不是问题,因为babyFoos是一个定长的指针数组更新了我的帖子。afai可以看出,范围不是问题。一个愚蠢的错误。这里的问题是“这”。谢谢。
template <typename T>
bool Foo<T>::iterateFoos()
{
for(int i=0; i<5; i++)
{
if(babyFoos[i] != NULL) { do stuff }
}
}