链表实现中出错
Error in Linked List Implementation
以下是Adam Drozdek的《C++中的数据结构和算法》(第二版)中的单链表实现的代码摘录,该代码涉及删除具有给定值的节点。
IntNode *tmp = head->next;
head = head->next;
delete tmp;
(head在其他地方被定义为IntNode*)这个代码片段中是否有拼写错误,或者我的心理处理器是否不正确,因为每次执行上述代码片段后,head都将是空指针?
当您编写delete tmp
时,您正在删除tmp
指向的对象。但是,删除后的head
仍然会指向相同的位置。取消引用它(*head
)将导致问题,因为head
所指向的对象已被删除。
相关文章:
- C++迭代器:实现迭代器类时出错
- 使用链表实现堆栈时出错
- 包含适当的标头时,实现文件中的多个定义出错
- 使用std::set实现稀疏三维网格时出错
- 实现重载运算符'<<'时出错 - C++
- 在C++中检查队列实现时出错
- 在C++中实现双链表时出错
- 链表实现中出错
- 实现智能指针类时出错
- 实现提升函数指针时出错LNK2005
- 在 OpenCV 中实现 DCT 时出错
- 在C++中实现选择排序时出错
- 使用 C++ 实现凯撒密码时出错
- 实现派生类构造函数时出错:"重载函数的任何实例都与指定的类型匹配
- 尝试实现运算符时出错<<?
- C++实现邻接列表时出错
- 运行列表的实现时出错
- bucket排序的实现中出错
- C++中Mergesort实现出错
- 实现"Singleton"模式时出错