【发布时间】:2014-02-13 16:46:18
【问题描述】:
我有一个由结构定义的链表
struct node {
std::string elem;
std::vector<node *> children;
};
假设它是正确动态分配的,那么之后如何释放堆? 我正在尝试这个:
void removeNodes(node* hElem) {
for (node *hElemChildren: hElem->children)
removeNodes(hElemChildren);
delete hElem;
}
但我担心在这个过程中我会丢失动态分配给std::string 和std::vector 的内存。如果这里有内存泄漏,有人可以告诉我吗?谢谢!
【问题讨论】:
-
string不会丢失内存,delete hElem完全免费 -
...警告:如果
nodes with kids 被抄袭,你就会接受粗鲁的现实。仅供参考。只要你管理得好,你会没事的。
标签: c++ linked-list dynamic-memory-allocation