记录初始化数组

时间:2018-11-26 10:35:31

标签: delphi

我有这种类型:

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?)

1 个答案:

答案 0 :(得分:8)

  

我的问题:是否保证每个记录元素都将使用默认值初始化?

是的,这是可以保证的。

SetLength documentation说(我的重点):

  

保留数组中的现有元素,并将新分配的空间设置为0或nil