首页 > 解决方案 > C ++程序在构造函数上崩溃

问题描述

我的程序发生了奇怪的崩溃。我在 Linux 环境中运行该程序。

这是代码:

class classB
{
public:
    classB(classA* pi_pCreator)
    {
        m_pCreator = pi_pCreator;
    }

    bool DoAction()
    {
        if(m_pCreator)
        {
            //do some code
            return true;
        }
        return false;
    }

private:
    classA* m_pCreator = NULL;
};

void Correlate(classA* pi_pCreator)
{
    classB l_oCorrelate(pi_pCreator);
    bool res = l_oCorrelate.DoAction();
    if (res)
    {
        return;
    }
    else
    {
        pi_pCreator->DoErrorAction();
    }
}

我正在使用 crashfind 来查找崩溃的根源,结果是指这一行:

classB l_oCorrelate(pi_pCreator);

通常Correlate使用 valid 调用该函数pi_pCreator,但也有一些使用 NULL 的情况。

的构造函数classB真的是问题,还是取消引用问题?

标签: c++crash

解决方案


推荐阅读