我有这种类型:
type
TFieldRec = array of record
FieldName: string;
Value: Variant;
DataType: TFieldType;
Data: Pointer;
end;
和代码:
var
FR: TFieldRec;
SetLength(FR, 5);
我的问题:是否保证使用默认值初始化每个记录元素?
'', Unassigned, ftUnknown, nil
在调试器中,我看到它是正确的。但是我记得记录应该用Initialize
初始化(或者是Finalize
?)
答案 0 :(得分:8)
我的问题:是否保证每个记录元素都将使用默认值初始化?
是的,这是可以保证的。
SetLength
documentation说(我的重点):
保留数组中的现有元素,并将新分配的空间设置为0或nil 。