我有一个返回6个双精度数组的函数。
double* Validation();
我想在托管代码中转换此返回值。
array<double>^ validationPosition = gcnew array<double>(6);
validationPosition = Validation();
我收到此错误:
error C2440: '=' : cannot convert from 'double *' to 'cli::array<Type> ^'
我该怎么做?
感谢。
答案 0 :(得分:4)
如果您希望将其置于托管数组中,则需要将其复制到数组中。本机double *数组不能直接用作托管数组。
您可以使用Marshall :: Copy复制它,或者只循环显示您的6个值。
您还希望(可能)删除[]您的返回值,因为它听起来像是在您的validation()例程内部分配一个数组。
答案 1 :(得分:0)
你可以编写一个迭代原始double *中每个变量的函数,并将值放入cli :: array中的相关容器中,然后返回新数组。