Como converter um duplo * para uma matriz (6)
Pergunta
Eu tenho uma função que retorna uma matriz de 6 duplos.
double* Validation();
Gostaria de lançar esse valor de retorno em código gerenciado.
array<double>^ validationPosition = gcnew array<double>(6);
validationPosition = Validation();
Eu recebo este erro:
error C2440: '=' : cannot convert from 'double *' to 'cli::array<Type> ^'
Como devo fazer isso?
Graças.
Solução
Se você quer que isso seja em uma matriz gerenciada, você precisará copiá-lo para a matriz. A matriz nativa dupla * não poderá ser usado diretamente como uma matriz gerenciado.
Você pode usar Marshall :: Copiar para copiar este, ou apenas loop através de seus 6 valores.
Você também vai querer (provavelmente) delete [] seus valores de retorno, uma vez que soa como ele é alocar uma matriz interna à sua validação () rotina.
Outras dicas
Você poderia escrever uma função que percorre cada variável no * duplo original e coloca os valores no recipiente relevante em um cli :: matriz, em seguida, retornar a nova matriz.