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 不是 2 的幂。

重新 byteCount 分配失败的 alignment 内存。

注解

此方法的作用就像 ptrnull一样AlignedAlloc(UIntPtr, UIntPtr)

此方法允许 byteCount0 ,并将返回不应取消引用的有效指针,并且应将其传递给释放以避免内存泄漏。

此方法是依赖于平台的对齐重新分配 API,例如 _aligned_realloc Win32 上的 。

此方法与 Free(Void*)Realloc(Void*, UIntPtr)不兼容。 请改为调用 AlignedFree(Void*)AlignedRealloc(Void*, UIntPtr, UIntPtr)

适用于