NativeMemory.AlignedAlloc(UIntPtr, UIntPtr) Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Важно!
Этот API несовместим с CLS.
Выделяет выровненный блок памяти указанного размера и выравнивания в байтах.
public:
static void* AlignedAlloc(UIntPtr byteCount, UIntPtr alignment);
[System.CLSCompliant(false)]
public static void* AlignedAlloc (nuint byteCount, nuint alignment);
[System.CLSCompliant(false)]
public static void* AlignedAlloc (UIntPtr byteCount, UIntPtr alignment);
[<System.CLSCompliant(false)>]
static member AlignedAlloc : unativeint * unativeint -> nativeptr<unit>
Параметры
- byteCount
-
UIntPtr
nuint
unativeint
Размер выделенного блока в байтах.
- alignment
-
UIntPtr
nuint
unativeint
Выравнивание выделенного блока в байтах. Это должно быть значение .2
Возвращаемое значение
Указатель на выделенный выровненный блок памяти.
- Атрибуты
Исключения
alignment
не является силой двух.
Сбой byteCount
выделения памяти alignment
.
Комментарии
Этот метод позволяет byteCount
быть 0
и будет возвращать допустимый указатель, который не следует разыменовывать и который должен быть передан в свободное, чтобы избежать утечек памяти.
Этот метод представляет собой тонкую оболочку для API C aligned_alloc
или API распределения, зависящего от платформы, например _aligned_malloc
в Win32.
Этот метод несовместим с Free(Void*) или Realloc(Void*, UIntPtr). Вместо этого вызовите AlignedFree(Void*) или AlignedRealloc(Void*, UIntPtr, UIntPtr).