我遇到了搜索,选择和替换功能的问题。特别是,某一行代码导致我的程序崩溃(它刚开始运行然后崩溃,说执行失败)。这是我的搜索功能的代码(相同的代码行使程序崩溃):
unsigned int DoublyLinkedList::search(DataType value) const
{
if (size_ == 0)
return size_;
else
{
Node* temp = head_;
for (int i = 0; i < size_; i++)
{
if (temp->value == value)
return i;
temp = temp->next;
}
return size_;
}
}
从各方面来看,我相当确定这些代码应该按预期工作。但似乎“temp = temp-&gt; next”行正在使程序崩溃(运行没有该行的函数完全正常)。
我尝试在Eclipse IDE,Dev-C ++中运行它,但两者似乎都失败了。在我的代码中的其他地方是否存在我不想的问题?
感谢您的帮助。
答案 0 :(得分:0)
因为在使用构造临时 - &gt; next时取消引用空指针。 在此之前把if(temp)接下来做移动