OpCodes.Localloc Campo

Definizione

Esegue l'allocazione di un numero di byte dal pool di memoria dinamica locale e inserisce l'indirizzo (un puntatore transitorio di tipo *) del primo byte allocato nello stack di valutazione.

public: static initonly System::Reflection::Emit::OpCode Localloc;
public static readonly System.Reflection.Emit.OpCode Localloc;
 staticval mutable Localloc : System.Reflection.Emit.OpCode
Public Shared ReadOnly Localloc As OpCode 

Valore del campo

Commenti

La tabella seguente elenca il formato di assembly Esadecimale e MSIL (Microsoft Intermediate Language), insieme a un breve riepilogo dei riferimenti:

Formato Formato assembly Descrizione
FE 0F localloc Allocare spazio dall'heap locale.

Il comportamento di transizione dello stack, in ordine sequenziale, è:

  1. Il numero di byte da allocare viene inserito nello stack.

  2. Il numero di byte viene estratto dallo stack; una quantità di memoria corrispondente alla dimensione viene allocata dall'heap locale.

  3. Un puntatore al primo byte della memoria allocata viene inserito nello stack.

L'istruzione localloc alloca size (tipo natural unsigned int) byte dal pool di memoria dinamica locale e restituisce l'indirizzo (un puntatore temporaneo, tipo *) del primo byte allocato. Il blocco di memoria restituito viene inizializzato su 0 solo se il flag di inizializzazione nel metodo è true. Quando il metodo corrente esegue un Ret, il pool di memoria locale viene reso disponibile per il riutilizzo.

L'indirizzo risultante è allineato in modo che qualsiasi tipo di dati primitivo possa essere archiviato usando le stind istruzioni (ad esempio ) e caricate usando le ldind istruzioni (ad esempio Stind_I4Ldind_I4).

L'istruzione localloc non può essere eseguita all'interno di un filterblocco , catch, finallyo fault .

StackOverflowException viene generata se la memoria non è sufficiente per gestire la richiesta.

L'overload del metodo seguente Emit può usare il localloc codice operativo:

Si applica a