NativeMemory.AlignedAlloc(UIntPtr, UIntPtr) Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Importante
Esta API no es conforme a CLS.
Asigna un bloque alineado de memoria del tamaño y la alineación especificados, en 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>
Parámetros
- byteCount
-
UIntPtr
nuint
unativeint
Tamaño, en bytes, del bloque que se va a asignar.
- alignment
-
UIntPtr
nuint
unativeint
Alineación, en bytes, del bloque que se va a asignar. Debe ser una potencia de 2.
Devoluciones
Puntero al bloque de memoria alineado asignado.
- Atributos
Excepciones
alignment no es un poder de dos.
Se ha producido un error en la asignación byteCount de memoria alignment .
Comentarios
Este método permite byteCount ser 0 y devolverá un puntero válido que no se debe desreferenciar y que se debe pasar para liberar para evitar pérdidas de memoria.
Este método es un contenedor fino sobre la API de C aligned_alloc o una API de asignación alineada dependiente de la plataforma, como _aligned_malloc en Win32.
Este método no es compatible con Free(Void*) o Realloc(Void*, UIntPtr). En su lugar, llame a AlignedFree(Void*) o AlignedRealloc(Void*, UIntPtr, UIntPtr).