当有些空间不再需要时,你可以用free命令通知系统来回收他。free(p)的结果是:p正在指向的地址没变,但再该地址处的数据此时已无定义了。
删除一个表的不正确的方法:
void deleteList(List L)
{
Position P;
P = L->next;
L->next = NULL;
while(P){
free(P);
P = P->next;
}
}
对于要放弃的单元,应该需要一个临时的变量,因为在撤除指针的工作结束后,你将不能再引用它。以上代码不是删除整个表的正确方法。
以下是删除一个表的正确的方法:
void deleteList(List L)
{
Position P, Tmp;
P = L->next;
L->next = NULL;
while(P){
Tmp = P->next;
free(P);
P = Tmp;
}
}
——摘自《数据结构预算法分析》P38.