A
afay
Unregistered / Unconfirmed
GUEST, unregistred user!
在Delphi自带的帮助上看到静态array的内存是固定的,也就是说一旦申明了就会划一块内存留起备用。
但是我在看TStringList的源代码时却看到它用静态数组,而且上限还很大,源代码在classes.pas文件的540行,内容如下:
PStringItemList = ^TStringItemList;
TStringItemList = array[0..MaxListSize] of TStringItem;
TStringList = class(TStrings)
private
FList: PStringItemList;
......
上面在申明变量FList时使用的是指针,但该指针指向的是静态数组啊?是不是用指针就不会分配内存了??
但是我在看TStringList的源代码时却看到它用静态数组,而且上限还很大,源代码在classes.pas文件的540行,内容如下:
PStringItemList = ^TStringItemList;
TStringItemList = array[0..MaxListSize] of TStringItem;
TStringList = class(TStrings)
private
FList: PStringItemList;
......
上面在申明变量FList时使用的是指针,但该指针指向的是静态数组啊?是不是用指针就不会分配内存了??