Condividi tramite


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

Definizione

Importante

Questa API non è conforme a CLS.

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

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)]
public static void* AlignedRealloc (void* ptr, UIntPtr byteCount, UIntPtr 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

Dimensioni, in byte, del blocco da allocare.

alignment
UIntPtr

nuint

unativeint

Allineamento, in byte, del blocco da allocare. Questo deve essere un potere di 2.

Restituisce

Void*

Puntatore al blocco allineato allineato alla memoria allineata.

Attributi

Eccezioni

alignment non è una potenza di due.

La riallocazione byteCount della memoria con alignment errore.

Commenti

Questo metodo funge da AlignedAlloc(UIntPtr, UIntPtr) se ptr sia null.

Questo metodo consente byteCount di 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 reallocation allineata alla piattaforma, _aligned_realloc ad esempio in Win32.

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

Si applica a