在我用户制作的链接列表中,我用来保存我正在制作的基于文本的rpg的广告资源,我的链接列表中遇到了删除功能的错误。我想知道是否有人能指出我为什么会收到这个错误。
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;
}
}
}
我遇到了代码的最终if语句的错误,错误是:
错误C4703:可能未初始化的本地指针变量' previousNode'使用
答案 0 :(得分:1)
要修复它,您需要在保证运行的块中初始化PreviousNode - no if / while / etc。
这可以去任何地方,但我建议你在声明时将其设置为NULL,并检查以确保它在使用时不为空。当你声明并检查你的指针时,总是习惯初始化。