NativeMemory.AlignedAlloc(UIntPtr, UIntPtr) Method
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Important
This API is not CLS-compliant.
Allocates an aligned block of memory of the specified size and alignment, in bytes.
public:
static void* AlignedAlloc(UIntPtr byteCount, UIntPtr alignment);
[System.CLSCompliant(false)]
public static void* AlignedAlloc(UIntPtr byteCount, UIntPtr alignment);
[System.CLSCompliant(false)]
public static void* AlignedAlloc(nuint byteCount, nuint alignment);
[<System.CLSCompliant(false)>]
static member AlignedAlloc : unativeint * unativeint -> nativeptr<unit>
Parameters
- byteCount
-
UIntPtr
nuint
unativeint
The size, in bytes, of the block to allocate.
- alignment
-
UIntPtr
nuint
unativeint
The alignment, in bytes, of the block to allocate. This must be a power of 2.
Returns
A pointer to the allocated aligned block of memory.
- Attributes
Exceptions
alignment is not a power of two.
Allocating byteCount of memory with alignment failed.
Remarks
This method allows byteCount to be 0 and will return a valid pointer that should not be dereferenced and that should be passed to free to avoid memory leaks.
This method is a thin wrapper over the C aligned_alloc API or a platform dependent aligned allocation API such as _aligned_malloc on Win32.
This method is not compatible with Free(Void*) or Realloc(Void*, UIntPtr). Instead, call AlignedFree(Void*) or AlignedRealloc(Void*, UIntPtr, UIntPtr).