方法 : ポインターと配列を固定する
マネージ オブジェクトに定義されているサブオブジェクトの固定には、オブジェクト全体を固定するという効果があります。 たとえば、配列の要素が固定されている場合、配列全体も固定されます。 固定された配列を宣言するための言語の拡張機能はありません。 配列を固定するには、その要素の型に対して固定ポインターを宣言し、要素の 1 つを固定します。
例
コード
// pin_ptr_array.cpp
// compile with: /clr
#include <stdio.h>
using namespace System;
int main() {
array<Byte>^ arr = gcnew array<Byte>(4);
arr[0] = 'C';
arr[1] = '+';
arr[2] = '+';
arr[3] = '\0';
pin_ptr<Byte> p = &arr[1]; // entire array is now pinned
unsigned char * cp = p;
printf_s("%s\n", cp); // bytes pointed at by cp
// will not move during call
}
++