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

Definice

Důležité

Toto rozhraní API neodpovídá specifikaci CLS.

Přeloží zarovnaný blok paměti zadané velikosti a zarovnání v bajtech.

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*

Dříve přidělený blok paměti.

byteCount
UIntPtr

nuint

unativeint

Velikost bloku, který se má přidělit, v bajtech.

alignment
UIntPtr

nuint

unativeint

Zarovnání bloku, který se má přidělit, v bajtech. To musí být síla 2.

Návraty

Void*

Ukazatel na znovu přidělený zarovnaný blok paměti.

Atributy

Výjimky

alignment není mocnina dvou.

byteCount Přidělení paměti se alignment nezdařilo.

Poznámky

Tato metoda funguje, jako AlignedAlloc(UIntPtr, UIntPtr) by ptr byla null.

Tato metoda umožňuje byteCount být 0 a vrátí platný ukazatel, který by neměl být dereferencován a který by měl být předán do volného, aby se zabránilo nevracení paměti.

Tato metoda je rozhraní API reallocation v závislosti na platformě, například _aligned_realloc ve Win32.

Tato metoda není kompatibilní s Free(Void*) nebo Realloc(Void*, UIntPtr). Místo toho zavolejte AlignedFree(Void*) nebo AlignedRealloc(Void*, UIntPtr, UIntPtr).

Platí pro