Udostępnij za pośrednictwem


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

Definicja

Ważne

Ten interfejs API nie jest zgodny ze specyfikacją CLS.

Ponownie przydziela wyrównany blok pamięci o określonym rozmiarze i wyrównaniu w bajtach.

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>

Parametry

ptr
Void*

Wcześniej przydzielony blok pamięci.

byteCount
UIntPtr

nuint

unativeint

Rozmiar bloku do przydzielenia w bajtach.

alignment
UIntPtr

nuint

unativeint

Wyrównanie w bajtach bloku do przydzielenia. Musi to być potęga .2

Zwraca

Void*

Wskaźnik do ponownie przydzielonego bloku pamięci.

Atrybuty

Wyjątki

alignment nie jest potęgą dwóch.

Reallocating byteCount pamięci z alignment niepowodzeniem.

Uwagi

Ta metoda działa tak, ptr jakby AlignedAlloc(UIntPtr, UIntPtr) to null.

Ta metoda pozwala byteCount na zwrócenie 0 prawidłowego wskaźnika, który nie powinien być wyłuszany i który należy przekazać, aby uniknąć przecieków pamięci.

Ta metoda jest zależną od platformy interfejsu API wyrównywania lokalizacji rzeczywistej, na przykład _aligned_realloc w systemie Win32.

Ta metoda nie jest zgodna z programem Free(Void*) lub Realloc(Void*, UIntPtr). Zamiast tego wywołaj metodę AlignedFree(Void*) lub AlignedRealloc(Void*, UIntPtr, UIntPtr).

Dotyczy