在我用来创建链接列表中,我正在使用这个链接列表来存放我制作的基于文本的RPG库存,我在我的链接列表中遇到了与我的删除功能有关的错误。我想知道是否有人可以指出为什么我得到这个错误。链接列表错误,C++
void InventoryList::deleteNode(int num)
{
ListNode *previousNode; //To point to the previous node
ListNode *nodePtr; //to traverse the list
int number = 1;
//if the head is empty do nothing
if (!head)
{
return;
}
//Determine if the first node is the value
if (1 == num)
{
nodePtr = head->next;
delete head;
head = nodePtr;
}
else
{
//intialize the node as head.
nodePtr = head;
//Skip nodes whose value is not equal to num.
while (nodePtr != nullptr && number != num)
{
previousNode = nodePtr;
nodePtr = nodePtr->next;
number++;
}
if (nodePtr)
{
previousNode->next = nodePtr->next;
delete nodePtr;
}
}
}
我遇到这个错误与最终如果代码的语句,错误的是:
错误C4703:可能未初始化的局部指针变量“previousNode”使用
它调用了这个错误,因为你只在while循环中初始化'previousNode',while循环不总是运行(即,如果'num == 0')。在while循环之前设置'previousNode = nodePtr'以及在其内部 –
如果你的焦点是一个RPG游戏,使用现有的'std :: list'并减轻你重新创建你自己的链表的负担。 –
非常感谢!我知道它会更容易使用std :: list,但我需要为我的类做一个(大学课 –