如何将double *转换为数组<double>(6)</double>

时间:2009-04-14 15:16:36

标签: .net c++ unmanaged managed

我有一个返回6个双精度数组的函数。

double* Validation();

我想在托管代码中转换此返回值。

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

我收到此错误:

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

我该怎么做?

感谢。

2 个答案:

答案 0 :(得分:4)

如果您希望将其置于托管数组中,则需要将其复制到数组中。本机double *数组不能直接用作托管数组。

您可以使用Marshall :: Copy复制它,或者只循环显示您的6个值。

您还希望(可能)删除[]您的返回值,因为它听起来像是在您的validation()例程内部分配一个数组。

答案 1 :(得分:0)

你可以编写一个迭代原始double *中每个变量的函数,并将值放入cli :: array中的相关容器中,然后返回新数组。