type
TSomeRecord = Record
field1: integer;
field2: string;
field3: boolean;
End;
var
SomeRecord: TSomeRecord;
SomeRecAr: array of TSomeRecord;
这是我所拥有的最基本的示例,因为我想重用SomeRecord
(某些字段保持为空,而不释放所有内容,当我重用时,某些字段将被保留SomeRecord
,这显然是不希望的)我正在寻找一种方法来一次释放所有字段。我开始string[255]
使用. 我仍然缺乏了解原因的知识,但这似乎与它是动态的有关。我也在使用动态数组,所以我认为尝试任何动态都会导致泄漏。花了一天时间才弄清楚这一点。我想我通过使用on或before解决了这个问题ZeroMemory()
string
ZeroMemory()
Finalize()
SomeRecord
SomeRecAr
ZeroMemory()
,但我不确定这是正确的方法还是只是我很愚蠢。
所以问题是:如何一次释放所有东西?是否存在一些我不知道的单一程序?
换一种说法,或者我愿意接受有关如何以不同方式实施这些记录的建议,因此我不需要在释放内容时进行复杂的尝试。我已经研究过使用它创建记录New()
然后将其删除Dispose()
,但我不知道调用后的变量Dispose()
未定义而不是 nil 时意味着什么。另外,我不知道某个类型的变量(SomeRecord: TSomeRecord
)与指向某个类型的变量( )之间有什么区别SomeRecord: ^TSomeRecord
。我目前正在研究上述问题,除非有人能快速解释,否则可能需要一些时间。