Comment : épingler des pointeurs et des tableaux
Épingler un sous-objet défini dans un objet managé a pour effet d'épingler l'objet entier.Par exemple, si un élément d'un tableau est épinglé, puis tableau entière est également épinglé.Il n'existe aucune extension au langage pour déclarer un tableau épinglée.Pour épingler un tableau, déclarez un pointeur épingle à son type d'élément, et à une seule broche de ses éléments.
Exemple
Code
// 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
}
Sortie
++