关于TList的一个简单问题 ( 积分: 30 )

  • 主题发起人 主题发起人 ritapl
  • 开始时间 开始时间
R

ritapl

Unregistered / Unconfirmed
GUEST, unregistred user!
TList在销毁的时候到底会不会销毁它每个节点中存放的指针所申请的内存呢?
比如说我把一个对象添加到TList中后,TList销毁后会不会把这个对象销毁掉?
 
TList在销毁的时候到底会不会销毁它每个节点中存放的指针所申请的内存呢?
比如说我把一个对象添加到TList中后,TList销毁后会不会把这个对象销毁掉?
 
不会的! 要自己销毁.
 
我认为, 你在销毁list 前, 先遍历所有节点, 并释放,最后释放list, 否则, 内存泄漏.
 
我现在也是这样做的
如果是存放的一个Record指针呢,用不用释放呢?Record里面可能有对象也可能没有,普通的
Record指针是不是不用释放呢?
比如:
aaa = Record
id: Integer;
socket: TCustomWinSocket;
dt: TDateTime;
end;
 
要! 不管你存什么, 只要你存的占用了空间都要释放的.
 
如果Record里面再有Record的话那释放的时候就要一层一层的释放下去么?
比如:
a = record
id: Integer;
socket : TCustomWinSocket;
end;
b = record
client: String;
data: a;
end;
把b的指针放到TList里面去,那释放的时候是不是要把b.Data.socket先释放呢?在释放
b,在释放TList..有点转牛角尖了吧,不过这些问题都是实际遇到的,希望能弄清楚
 
要的,你必须自己处理所有的内存释放!
 
要的,你必须自己处理所有的内存释放!
 
多人接受答案了。
 
后退
顶部