将动态数组转换为静态数组

Convert dynamic array to static

出于兼容性目的,我需要将我的动态数组(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;

结果只有第一个元素复制成功。有没有不使用替代迭代解决方案的快速复制数组的方法?

移动接受字节数。您传递元素的数量。你需要通过

Length(aArray)*SizeOf(aArray[0])

作为要复制的字节数。

请务必检查 aArray 的长度是否不超过 50。

另请注意,您并未初始化结果数组的所有元素。这是否重要只有你可以判断。