如何:钉住指针和数组

锁定托管对象定义的子对象具有锁定整个对象的效果。 例如,因此,如果数组的任何元素锁定,然后整个数组也锁。 不对声明一个锁的数组的语言。 若要固定数组,声明钉住指针到其元素类型,并锁定其元素之一。

示例

18132394.collapse_all(zh-cn,VS.110).gif代码

// 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
}

18132394.collapse_all(zh-cn,VS.110).gifOutput

++

请参见

参考

pin_ptr (C++/CLI)