所以我在使用我的某個函數時遇到了一些麻煩。程序(用C++)玩遊戲,桌子上坐着很多玩家。每次我的播放功能被調用時,它應該向遊戲機中的玩家顯示。每次調用時都應該依次顯示玩家。在它擊中最後一名玩家後,它將在列表/表格的開始處開始。 無效CircleList ::玩()鏈接列表的循環遍歷
LinkedListOfPlayersNode *p=(*pFront).pNext;
if (p->pData!=NULL)
{
cout<<p->pData->getName()+" takes a turn\n";
pLastPlayer = pLastPlayer->pNext;
}
else
{
cout<<"There are no players. Please ADD a player.\n";
}
}
所以讓我們說,我們添加A,B和C.當您使用PLAY命令,C應該轉一轉,再然後B A.由於權現在使用上面的代碼,它會顯示C轉了一圈,但是,之後它立即崩潰。 那麼我的代碼有什麼問題?有沒有更好的方法來寫這個?
嘗試通過調試器逐步完成它......您的指針之一可能是錯誤的。 – Cornstalks
我建議你在列表中使用默認元素而不是null元素,這將爲你節省很多時間調試。 – user1708860
在檢查'p-> pData之前檢查p!= NULL' – MarsRover