【发布时间】:2014-07-15 00:38:12
【问题描述】:
假设我有一个标准的链表结构如下:
struct Linked {
int data;
Linked* next;
}
我通过calloc 使next 指针有足够的内存来存储另一个Linked 并对其进行初始化,从而使它们循环起来。按照链表的规范,我只维护一个指向第一个节点的指针,如下所示:
struct Linked *first = make_list();
现在,我想释放整个列表所占用的内存。我可以打电话吗
free(first);
并让它释放所有内存(包括分配给所有next 指针的内存),还是我必须从末尾向后进行释放?
【问题讨论】:
标签: c struct linked-list free