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.

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top