var List: TList;begin List := TList.Create; ShowMessage(IntToStr(List.InstanceSize)); {16} List.Free;end;如果一个类真的包含一个 2个G 大小的数组, 这是不可想想的, 类一建立程序就死定了; 巧妙的是 TList 只是使用了这个数组的指针! Delphi 已经为这个数组和数组指针都做了定义:
PPointerList = ^TPointerList;TPointerList = array[0..MaxListSize - 1] of Pointer;这样以来, 我们使用多少就去申请多少内存空间就是了. 关于指针和申请内存空间还是应该多了解一点; 因为 TList 的核心就是这个数组的指针!