0

次のように、C# でネイティブ C++ dll を使用しています。

C++ 関数:

poly* f1(/*some input data*/);
double* f2(poly* p);

C# では、次のことを行っています。

(これは unsafe ブロックと fixed ブロックを適切に使用して行われているため、心配する必要はありません)

void* ptr  = f1(/*input data*/);
double[] result = f2(ptr);

からデータを印刷するとf2、一部のデータが破損し、ガベージ値が表示されます。そして、いくつかの値は正しいです。私が知りたいのは、それを void ポインターに保存するためptrですか? それともそれでいいのですか、理由は別のものですか?

4

1 に答える 1