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, 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>

Параметры

ptr
Void*

Ранее выделенный блок памяти.

byteCount
UIntPtr

nuint

unativeint

Размер выделенного блока (в байтах).

alignment
UIntPtr

nuint

unativeint

Выравнивание выделенного блока (в байтах). Это должно быть сила .2

Возвращаемое значение

Void*

Указатель на перераспределенный выровненный блок памяти.

Атрибуты

Исключения

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).

Применяется к