【发布时间】:2014-11-04 12:18:55
【问题描述】:
写时复制语义是否适用于动态记录数组?
如何正确复制记录数组?
这就够了吗?:
type
recordA = Record
Y:integer;
end;
var x: array of recordA;
b: array of recordA;
item: recordA;
begin
SetLength(x, 2);
item.Y:= 2;
x[0] := item;
item.Y:= 5;
x[1] := item;
//Copying
b:= x;
复制完成后,我需要重置第一个数组:
SetLength(x, 0);
我可以这样做吗?
【问题讨论】:
-
您的代码可以工作(但我相信您已经尝试过了。)所以我不确定您到底在问什么。
-
delphi 6 不在这里抱怨不兼容的类型
b:= x;,因为你没有声明像:x,b: array of recordA;? -
@bummi:确实。两个数组的类型不同,不应该是赋值兼容的。
标签: delphi record delphi-6 copy-on-write