本帖最后由 zsb534923374 于 2014-11-27 11:17:11 编辑

解决方案 »

  1.   

    求帮忙,这里没有对孩子结点赋空,会不会造成野指针,因为跟踪发现,delete父结点时,孩子结点的地址会改变掉。。
      

  2.   

    会啊,只delete,鬼直到会指向哪儿!!!
      

  3.   

    void CExpTree::Destroy(CExpNode *pNode)
    {
    if (pNode != 0)
    {Destroy(pNode->m_pLeft);
    Destroy(pNode->m_pRight);
    delete pNode;
    pNode = NULL;
    }}
      

  4.   


    这样赋空,貌似不行,跟踪发现它只对临时变量pNode的m_pLeft赋空了,没有对m_pRoot的m_pLeft赋空,这里要赋空是要传个二级指针进来吗
      

  5.   

    void CExpTree::Destroy(CExpNode * &pNode)
    {
    ...
         pNode = NULL;
    }