【发布时间】:2012-03-13 03:17:00
【问题描述】:
我正在使用 C++ 编写一个模板化的通用链表,但我遇到了 push() 方法的问题。我想我知道问题所在,但我无法找到解决方案。这是我的推送方法。
template <class T> void DLL<T>::pushFront(T value) {
Node<T> node(value);
temp = node;
temp->setPrev(*head);
temp->setNext(*(head->getNext()));
head->setNext(*temp);
temp->getNext()->setPrev(*temp);
this->length++;
}
在将一些整数推入列表后,遍历列表并打印出值会导致打印出似乎是内存中随机空间的数字。我认为这是因为在 push 函数返回后 node 变量被销毁有关。任何人都知道为什么这不起作用?所有 setNext/Prev() 和 getNext/Prev() 函数在我的其他测试中都能正常工作。我被难住了……
编辑*
变量 head 和 temp 是 Node*
类型的全局变量【问题讨论】:
-
第 3 行应该是 temp = &node 吗?
标签: c++ linked-list