NativeMemory.AlignedRealloc(Void*, UIntPtr, UIntPtr) Metodo

Definizione

Importante

Questa API non è conforme a CLS.

Rialloca in byte un blocco allineato di memoria delle dimensioni e dell'allineamento specificati.

public:
 static void* AlignedRealloc(void* ptr, UIntPtr byteCount, UIntPtr alignment);
[System.CLSCompliant(false)]
public static void* AlignedRealloc(void* ptr, UIntPtr byteCount, UIntPtr alignment);
[System.CLSCompliant(false)]
public static void* AlignedRealloc(void* ptr, nuint byteCount, nuint alignment);
[<System.CLSCompliant(false)>]
static member AlignedRealloc : nativeptr<unit> * unativeint * unativeint -> nativeptr<unit>

Parametri

ptr
Void*

Blocco di memoria allocato in precedenza.

byteCount
UIntPtr

nuint

unativeint

Dimensione, in byte, del blocco da allocare.

alignment
UIntPtr

nuint

unativeint

Allineamento, in byte, del blocco da allocare. Deve trattarsi di una potenza di 2.

Valori restituiti

Void*

Puntatore al blocco di memoria allineato riallocato.

Attributi

Eccezioni

alignment non è un potere di due.

Riallocazione byteCount della memoria con alignment errore.

Commenti

Questo metodo agisce come AlignedAlloc(UIntPtr, UIntPtr) se ptr fosse null.

Questo metodo consente di byteCount essere 0 e restituirà un puntatore valido che non deve essere dereferenziato e che deve essere passato gratuitamente per evitare perdite di memoria.

Questo metodo è un'API di riallocazione allineata dipendente dalla piattaforma, _aligned_realloc ad esempio in Win32.

Questo metodo non è compatibile con Free(Void*) o Realloc(Void*, UIntPtr). Chiamare AlignedFree(Void*) invece o AlignedRealloc(Void*, UIntPtr, UIntPtr).

Si applica a