delphi – 清除一个TList或一个TObjectList

对于将对象存储在列表中的用法有些困惑.
到目前为止,我已经使用了TList并在循环中释放了每个项目.然后我发现TObjectList自动从Free中执行.然后我从TList.Clear的文档中看到这个:

Call Clear to empty the Items array and set the Count to 0. Clear also
frees the memory used to store the Items array and sets the Capacity to 0.

所以基本上是一样的所以

为TList

mylist.Clear;
myList.Free;

与TObjectList一样吗?

myList.Free;

TObjectList只能用作项目类或可以存储记录吗?

解决方法

TList不会释放元素,包括清除或自由.

aList.Clear;

将只设置aList.Count:= 0而不释放aList.Items []元素.所以你会泄漏内存.你需要一个明确的免费:

for i := 0 to aList.Count-1 do
  TObject(aList[i]).Free;

但这是什么TObjectList做…

相关文章

 从网上看到《Delphi API HOOK完全说明》这篇文章,基本上都...
  从网上看到《Delphi API HOOK完全说明》这篇文章,基本上...
ffmpeg 是一套强大的开源的多媒体库 一般都是用 c/c+&#x...
32位CPU所含有的寄存器有:4个数据寄存器(EAX、EBX、ECX和ED...
1 mov dst, src dst是目的操作数,src是源操作数,指令实现的...