Sdílet prostřednictvím


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

Definice

Důležité

Toto rozhraní API neodpovídá specifikaci CLS.

Přerozdělí 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 v bajtech, který se má přidělit.

alignment
UIntPtr

nuint

unativeint

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

Návraty

Void*

Ukazatel na blok paměti zarovnaný s přerozděleným umístěním.

Atributy

Výjimky

alignment není síla dvou.

Přerozdělení byteCount 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 dereferenced a který by měl být předán na volné, aby se zabránilo nevracení paměti.

Tato metoda je rozhraní API pro přemísťování závislé 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