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 (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>
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).