Поделиться через


Практическое руководство. Закрепление указателей и массивов

Закрепление вложенный объект, указанный в управляемом объекте действует закрепление всего объект.Например, если закрепляется любой элемент массива, то массив целых также закрепит.Нет расширения языка для объявления закрепленный массив.Для закрепления массива, объявляющий закрепляющий указатель на свой тип элемента и закрепления один из его элементов.

Пример

18132394.collapse_all(ru-ru,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(ru-ru,VS.110).gifOutput

++

См. также

Ссылки

pin_ptr (C++/CLI)