NativeMemory.AlignedRealloc(Void*, UIntPtr, UIntPtr) Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
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
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).