NativeMemory.AlignedAlloc(UIntPtr, UIntPtr) 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
重要
此 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
幂。
返回
Void*
指向已分配的对齐内存块的指针。
- 属性
例外
alignment
不是 2 的幂。
分配 byteCount
失败的内存 alignment
。
注解
此方法允许 byteCount
和 0
将返回不应取消引用的有效指针,并且应将其传递给 free 以避免内存泄漏。
此方法是 C aligned_alloc
API 或平台相关的对齐分配 API(如 _aligned_malloc
Win32 上的)的精简包装器。
此方法与 Free(Void*) 或 Realloc(Void*, UIntPtr)不兼容。 请改为调用 AlignedFree(Void*) 或 AlignedRealloc(Void*, UIntPtr, UIntPtr)。