读书人

查错解决方法

发布时间: 2013-01-02 13:08:45 作者: rapoo

查错
classC;
classA
{
structB
{
C *m_function;
structB *m_next;
};
staticstructB *head;
public:
staticvoidinsert(C *f);
};
classC
{
public:
C()
{
A::insert(this);
}
};
A::B *A::head;
voidA::insert(C *f)
{
structB *old=head;
head =newstructB;
head->m_function = f;
head->m_next = old;
}

提示有SEGV 段错误
head->m_next = old; 把这行注释掉没有提示
[解决办法]

class C;
class A
{
struct B
{
C *m_function;
struct B *m_next;
};
static struct B *head;
public:
static void insert(C *f);
};
class C
{
public:
C()
{
A::insert(this);
}
};
A::B *A::head;
void A::insert(C *f)
{
struct B *old=head;
head =new struct B;
head->m_function = f;
head->m_next = old;
}

读书人网 >C++

热点推荐