Procedura: bloccare puntatori e matrici
Bloccare un sotto-oggetto definito in un oggetto gestito ha l'effetto di bloccare l'intero oggetto.Ad esempio, se qualsiasi elemento di una matrice è bloccato, la matrice di tutto è bloccato.Non esistono estensioni del linguaggio per dichiarare una matrice bloccata.Per bloccare una matrice, dichiarare un puntatore di blocco nel tipo di elemento e il pin uno dei relativi elementi.
Esempio
Codice
// 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
}
Output
++