Postupy: Připnutí ukazatelů a polí
Připnutí dílčího objektu definovaného ve spravovaném objektu má vliv na připnutí celého objektu. Pokud je například připnut jakýkoli prvek pole, připne se také celé pole. Pro deklarování připnutého pole neexistují žádná rozšíření jazyka. Chcete-li připnout pole, deklarujte připnutí ukazatele na jeho typ prvku a připněte jeden z jeho prvků.
Příklad
Kód
// 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
}
++