由于兼容性的目的,我需要将我的动态数组(Double)传递给定义为
的过时类型p_vektor
p_vektor=array[1..50] of double;
虽然两个声明与第一个索引声明不同,但使用的类型是相同的。我编写了以下代码来复制数组,但它失败了。
function DoubleArrayToPVektor(const aArray: TArray<Double>): p_vektor;
begin
Move(aArray[Low(aArray)], Result[Low(Result)], Length(aArray));
end;
结果,只有第一个元素被成功复制。有没有快速的方法来复制数组而不使用替代的迭代解决方案?
答案 0 :(得分:3)
Move接受字节数。你传递了元素的数量。你需要通过
Length(aArray)*SizeOf(aArray[0])
作为要复制的字节数。
请确保检查aArray
的长度是否不超过50。
另请注意,您没有初始化结果数组的所有元素。这是否重要只有你可以判断。