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
}
++

Siehe auch

pin_ptr (C++/CLI)