Как преобразовать double * в массив <double>(6) - PullRequest
0 голосов
/ 14 апреля 2009

У меня есть функция, которая возвращает массив из 6 дублей.

double* Validation();

Я хотел бы привести это возвращаемое значение в управляемый код.

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

Я получаю эту ошибку:

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

Как мне это сделать?

Спасибо.

Ответы [ 2 ]

4 голосов
/ 14 апреля 2009

Если вы хотите, чтобы это было в управляемом массиве, вам нужно будет скопировать его в массив. Собственный массив типа double * не может использоваться напрямую как управляемый массив.

Вы можете использовать Marshall :: Copy, чтобы скопировать это, или просто просмотреть все 6 значений.

Вы также захотите (возможно) удалить [] ваши возвращаемые значения, поскольку похоже, что он выделяет массив, внутренний для вашей процедуры validation ().

0 голосов
/ 14 апреля 2009

Вы можете написать функцию, которая перебирает каждую переменную в оригинальном double * и помещает значения в соответствующий контейнер в cli :: array, а затем возвращает новый массив.

...