Freigeben über


Gewusst wie: Anheften von Zeigern und Arrays

Das Fixieren eines Unterobjekts, das in einem verwalteten Objekt definiert wurde, hat den Auswirkungen des Anheftens des gesamten Objekts. Beispielsweise, wenn überhaupt wird Arrayelement fixiert, wird das Ganzarray ebenfalls fixiert. Es gibt keine Erweiterungen zur Sprache zum Deklarieren eines festen Arrays. Um ein Array für, deklarieren einen festen Zeiger zu dessen Elementtyp und zu Pin einer seiner Elemente.

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
}

Ausgabe

++

Siehe auch

Referenz

pin_ptr (C++/CLI)