我似乎在以下部分上遇到问题,而我得到的最新异常是:

LinkedList.exe中0x01321A01处未处理的异常:0xC0000005:访问冲突写入位置0x00000020。

我一直在搜寻google和我的书,已经好几个小时了,但似乎找不到所需的答案。

//add a node (pNode) at the tail of the list.
//return a pointer to the head node
ListNode* addEnd( ListNode* pHead, ListNode* pNode )
{

    ListNode* pCurr = pHead;

    while( pCurr != NULL )
    {
        if(pCurr->pNextNode == NULL)
            break;

        pCurr = pCurr->pNextNode;

        if(pCurr->pNextNode == NULL)
            break;
    }

    pCurr->pNextNode = pNode;

    delete [] pCurr;

    return pHead;
}

最佳答案

我认为delete [] pCurr;可能会在这里引起问题

您不应该在这里删除pCurr,因为这里您不是新的任何内存,临时指针将在函数末尾销毁自己,而delete []用于数组。

09-11 19:30