2009-04-14 89 views
0

我有一個返回6個雙精度數組的函數。如何將double *轉換爲數組<double>(6)

double* Validation(); 

我想在託管代碼中施放此返回值。

array<double>^ validationPosition = gcnew array<double>(6); 
validationPosition = Validation(); 

我得到這個錯誤:

error C2440: '=' : cannot convert from 'double *' to 'cli::array<Type> ^' 

我應該怎樣做呢?

謝謝。

回答

4

如果您希望它位於託管數組中,則需要將其複製到數組中。本地double *數組不能直接用作託管數組。

你可以使用Marshall :: Copy來複制它,或者只是循環你的6個值。

你也希望(可能)刪除你的返回值,因爲它聽起來像是在你的validation()例程內部分配一個數組。

0

您可以編寫一個函數,該函數遍歷原始double *中的每個變量,並將這些值放入cli :: array中的相關容器中,然後返回新的數組。

相關問題