NativeMemory.AlignedRealloc(Void*, UIntPtr, UIntPtr) 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
重要
此 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
内存。
注解
此方法的作用就像 ptr
是 null
一样AlignedAlloc(UIntPtr, UIntPtr)。
此方法允许 byteCount
为 0
,并将返回不应取消引用的有效指针,并且应将其传递给释放以避免内存泄漏。
此方法是依赖于平台的对齐重新分配 API,例如 _aligned_realloc
Win32 上的 。
此方法与 Free(Void*) 或 Realloc(Void*, UIntPtr)不兼容。 请改为调用 AlignedFree(Void*) 或 AlignedRealloc(Void*, UIntPtr, UIntPtr)。