Вопрос

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

double* Validation();

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

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

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

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

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

Спасибо.

Это было полезно?

Решение

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

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

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

Другие советы

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top