NativeMemory.AlignedRealloc(Void*, UIntPtr, UIntPtr) Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
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, UIntPtr byteCount, UIntPtr alignment);
[System.CLSCompliant(false)]
public static void* AlignedRealloc(void* ptr, nuint byteCount, nuint 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
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).