Cómo convertir un doble * a un array (6)
Pregunta
Tengo una función que devuelve un conjunto de 6 dobles.
double* Validation();
Me gustaría jugar este valor de retorno en código administrado.
array<double>^ validationPosition = gcnew array<double>(6);
validationPosition = Validation();
Me sale este error:
error C2440: '=' : cannot convert from 'double *' to 'cli::array<Type> ^'
¿Cómo debo hacer esto?
Gracias.
Solución
Si desea que esto sea en una matriz administrada, tendrá que copiarlo en la matriz. El * array doble nativo no será utilizable directamente como una matriz administrada.
Puede utilizar Marshall :: Copiar para copiar esto, o bucle sólo a través de sus 6 valores.
También tendrá que (probablemente) delete [] sus valores de retorno, ya que suena como si la asignación de una matriz interna a su rutina de validación ().
Otros consejos
Se puede escribir una función que itera a través de cada variable en el original doble * y pone los valores en el contenedor correspondiente en un cli :: matriz, a continuación, volver la nueva matriz.