【发布时间】:2014-03-27 02:22:31
【问题描述】:
有 2 段代码我似乎无法找到错误。我知道这些有问题。每人一份。
int pop()
{
Node* temp = new Node();
temp = tail;
tail->prev()->setNext(NULL);
int tempV = temp->key();
delete temp;
return tempV;
}
另一段代码是这样的:
int main()
{
Node* t = new Node(0,NULL);
t = Node(1,t);
t = Node(2,t);
delete t;
}
我想了一会儿这 2 段代码。对于第一段代码,我认为错误在于您不应该使用关键字new 在堆上创建 Node* temp。它应该只是Node* temp = tail;我相信。谁能确认一下?
对于第二段代码,我认为错误是你不需要两者
t = Node(1,t);
t = Node(2,t);
编辑::对不起,我犯了一个错误。它应该是节点而不是节点。我的朋友告诉我它必须与记忆有关。由于使用 new 声明了多个节点,是否存在内存泄漏?或者我们是否需要最后 2 个的新关键字?
谢谢
【问题讨论】:
-
node(int, Node*)是做什么的? -
你能展示一下
node()函数的实现吗?
标签: c++ list linked-list