Gewusst wie: Anheften von Zeigern und Arrays
Das Anheften eines untergeordneten Objekts, das in einem verwalteten Objekt definiert ist, hat den gleichen Effekt wie das Anheften des gesamten Objekts. Wenn z.B. ein Element eines Arrays angeheftet wird, wird auch das gesamte Array angeheftet. Es gibt keine Erweiterungen für die Sprache zum Deklarieren eines angehefteten Arrays. Um ein Array anzuheften, deklarieren Sie einen festen Zeiger für dessen Elementtyp, und heften Sie eines seiner Elemente an.
Beispiel
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
}
++