由于信号10(SIGBUS),调试器已退出

时间:2014-02-04 22:10:02

标签: c++

这是我在尝试测试双向链表的remove_at()功能时遇到的运行时错误。知道为什么会这样吗?我查看了我的算法并没有看到任何错误。或者,如果可能的话,请帮助我以更简单的程序执行此操作。

template <class T> void List<T>::remove_at(unsigned remIdx) { 
    if (remIdx > (size - 1)) { 
        throw("Out-of-bounds error.");
    } else { 
        node* curNodePtr = firstNodePtr;
        for (unsigned k = 0; k < remIdx; ++k)  
            curNodePtr = curNodePtr->nextNodePtr;
        (curNodePtr->prevNodePtr)->nextNodePtr = curNodePtr->nextNodePtr;
        (curNodePtr->nextNodePtr)->prevNodePtr = curNodePtr->prevNodePtr;
        delete curNodePtr;
    }
}

我班级定义的相关部分是

private:
    struct node { 
        T val;
        node* prevNodePtr;
        node* nextNodePtr;
    };
    node* firstNodePtr;
    node* lastNodePtr;
    unsigned size;

0 个答案:

没有答案