将动态数组转换为静态数组
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。
另请注意,您并未初始化结果数组的所有元素。这是否重要只有你可以判断。
出于兼容性目的,我需要将我的动态数组(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。
另请注意,您并未初始化结果数组的所有元素。这是否重要只有你可以判断。