【发布时间】:2021-04-03 13:26:03
【问题描述】:
void addEnd(T data) {
if (head == NULL) {
Node<T> *temp = new Node<T>(data);
head = temp;
tail = temp;
temp = NULL;
delete temp;
++size;
} else {
Node<T> *temp = new Node<T>(data);
tail->LinkToNext(temp);
temp->LinkToPrev(tail);
tail = temp;
temp = NULL;
delete temp;
++size;
}
}
在上面的addEnd函数中,我使用temp在堆上分配新节点后是否应该删除它,因为它可能导致内存泄漏或者没关系。
【问题讨论】:
-
节点动态分配后要不要删除?当然不行。当您不再需要之前的节点时,您可以删除它们。
标签: c++ memory-management memory-leaks linked-list