VC++の配列ポインタ宣言方法について教えて下さい。 例 array<float>^a=gcnew array<float>(10)とした場合、aをポインタ宣言するにはどうすれば良いでしょうか?

VC++の配列ポインタ宣言方法について教えて下さい。 例 array<float>^a=gcnew array<float>(10)とした場合、aをポインタ宣言するにはどうすれば良いでしょうか?

C言語関連29閲覧xmlns="http://www.w3.org/2000/svg">250

ベストアンサー

1

マネージド型のポインタは interior_ptr や pin_ptr を使います。 また、ネイティブ型とのマーシャリングには IntPtr を使います。 using namespace System; #include <stdio.h> int main(void) {     array<float>^a = gcnew array<float>(10);     for (int i = 0; i < a->Length; ++i) {         a[i] = i;     }     interior_ptr<float> p = &a[0];     for (int i = 0; i < a->Length; ++i) {         Console::Write("{0,2:F0}", *p++);     }     Console::WriteLine();     float b[10];     IntPtr fp(b);     System::Runtime::InteropServices::Marshal::Copy(a, 0, fp, a->Length);     for (int i = 0; i < a->Length; ++i) {         printf("%2.0f", b[i]);     }     printf("\n"); }

1人がナイス!しています

ThanksImg質問者からのお礼コメント

詳細に記していただきありがとうございます。

お礼日時:4/8 3:17

その他の回答(1件)

0

何をしたいのかよくわかりませんが、aをポインタ変数として宣言したいのなら、 型 *a; あるいは 型* a; と書きます。