在這段代碼中,當我試圖插入鏈表的前面時,我一直遇到分段錯誤。我認爲這與頭部沒有適當地改變有關。在這個程序中,籃子是節點。我使用的調試器指向函數的最後一行作爲問題,但我不完全確定它來自哪裏。節點的分段錯誤
include <cstdlib>
#include <iostream>
#include <ctime>
#include "BasketList.h"
using namespace std;
Basket::Basket(int _datum, Basket * _next):
egg_num(_datum), nextBasket(_next)
{}
int Basket::getEggs() const
{
return egg_num;
}
Basket const* Basket::getNextBasket() const
{
return nextBasket;
}
BasketList::BasketList() :
head (NULL)
{}
void BasketList::insertBasket(int eggs)
{
Basket *currPtr = head;
Basket *prevPtr = NULL;
Basket *newBasketPtr;
if(eggs < head->egg_num)
{
currPtr->nextBasket = head;
head = currPtr;
}
while(currPtr != NULL && eggs > currPtr->egg_num)
{
prevPtr = currPtr;
currPtr = currPtr->nextBasket;
}
newBasketPtr = new Basket(eggs, currPtr);
prevPtr->nextBasket = newBasketPtr;
}
你能否給我們一個[最小完整示例](http://stackoverflow.com/help/mcve)?這會爲我們節省很多繁瑣的工作。 – Beta
prevPtr在第一次插入時幾乎肯定是NULL。 – dbeer