2015-11-05 130 views
2

由於兼容性的目的,我需要將動態陣列(雙)傳遞給定義爲轉換動態數組靜態

p_vektor=array[1..50] of double; 

儘管雙方的聲明過時類型p_vektor從第一索引聲明不同,則使用的類型是相同的。我寫了下面的代碼來複制數組,但失敗了。

function DoubleArrayToPVektor(const aArray: TArray<Double>): p_vektor; 
begin 
    Move(aArray[Low(aArray)], Result[Low(Result)], Length(aArray)); 
end; 

因此,只有第一個元素被成功複製。有沒有快速的方法來複制數組而不使用替代迭代解決方案?

回答

3

Move接受字節數。你傳遞了元素的數量。您需要通過

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

作爲要複製的字節數。

請確保您檢查的aArray長度不超過50

另外要注意,你是不是初始化結果數組中的所有元素。只有你才能判斷事情的重要性。

+0

優秀!它確實有用,謝謝。 –