Domanda

Ho una funzione che restituisce un array di 6 doppie.

double* Validation();

Vorrei lanciare questa valore di ritorno nel codice gestito.

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

ottengo questo errore:

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

Come devo fare questo?

Grazie.

È stato utile?

Soluzione

Se si desidera che questo sia in un array gestito, è necessario copiarlo nella matrice. La doppia * array nativa non sarà utilizzabile direttamente come matrice gestita.

È possibile utilizzare Marshall :: Copia per copiare questo, o semplicemente scorrere i vostri 6 valori.

Si vuole anche (probabilmente) delete [] i valori di ritorno, dal momento che suona come se fosse l'allocazione di un array interno alla convalida () di routine.

Altri suggerimenti

Si potrebbe scrivere una funzione che consente di scorrere ogni variabile in originale doppia * e mette i valori nel contenitore rilevanti in un cli :: array, quindi restituire il nuovo array.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top