NativeMemory.AlignedRealloc(Void*, UIntPtr, UIntPtr) Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Внимание
Этот API несовместим с CLS.
Перераспределяет выровненный блок памяти указанного размера и выравнивания в байтах.
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>
Параметры
- ptr
- Void*
Ранее выделенный блок памяти.
- byteCount
-
UIntPtr
nuint
unativeint
Размер выделенного блока (в байтах).
- alignment
-
UIntPtr
nuint
unativeint
Выравнивание выделенного блока (в байтах). Это должно быть сила .2
Возвращаемое значение
Указатель на перераспределенный выровненный блок памяти.
- Атрибуты
Исключения
alignment не является силой двух.
Сбой перераспределения byteCount памяти alignment .
Комментарии
Этот метод действует так же, как AlignedAlloc(UIntPtr, UIntPtr) если бы ptr имеет значение null.
Этот метод позволяет byteCount быть 0 и будет возвращать допустимый указатель, который не следует разыменовывать и который должен передаваться свободно, чтобы избежать утечки памяти.
Этот метод является зависимым от платформы API выровненного перераспределения, _aligned_realloc например в Win32.
Этот метод несовместим с Free(Void*) или Realloc(Void*, UIntPtr). Вместо этого вызовите AlignedFree(Void*) или AlignedRealloc(Void*, UIntPtr, UIntPtr).