0

6 つの double の配列を返す関数があります。

double* Validation();

この戻り値をマネージド コードでキャストしたいと思います。

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

次のエラーが表示されます。

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

どうすればいいですか?

ありがとう。

4

2 に答える 2

4

これをマネージド アレイに配置する場合は、アレイにコピーする必要があります。ネイティブの double* 配列は、マネージ配列として直接使用できません。

Marshall::Copy を使用してこれをコピーするか、6 つの値をループするだけです。

また、validation() ルーチンの内部に配列を割り当てているように聞こえるため、戻り値を (おそらく) delete[] することもできます。

于 2009-04-14T15:19:10.887 に答える
0

元のdouble*の各変数を反復処理し、値をcli :: arrayの関連するコンテナーに入れてから、新しい配列を返す関数を作成できます。

于 2009-04-14T15:19:51.837 に答える