在树形链表中如果释放内存(一个关于指针的问题)(100分)

W

wly033

Unregistered / Unconfirmed
GUEST, unregistred user!
我定义了一个链表结构,但有一个问题,当我删除某个节点或释放整个链表时,
需不需要释放内存,应该怎么释放内存(从表尾向表头)

我发觉局部指针不像局部变量会自己释放内存,有没有同意我的想法的

type mylink=^link
link=record
i:integer;
str:string;
next:mylink;
end;
 
指针是不会释放的
你增加时用的New(X)
释放时用 Dispose(X)
除非你这个个指针不是NEW 的是指向一个变量的那你就不用释放了
 
删除某个节点当然就释放了,局部指针是不象局部变量那样自己释放内存
从后删除:
var
p : PyourList;
begin
p := PyourHead^.next;
while p <> nil do
begin
PyourHead^.next := p^.next;
Dispose(p);
p := PyourHead^.next;
end;
 
大富翁比CSDN在这件事上好一点,至少我的这个问题有人回答
 
凡是自己开辟的空间,需要自己收回(除非你另有安排)
 
指针都要删除,从尾到头删除把
 
多人接受答案了。
 
顶部