_aligned_recalloc
Cambia el tamaño de un bloque de memoria asignado con _aligned_malloc
o _aligned_offset_malloc
e inicializa la memoria en 0.
Sintaxis
void * _aligned_recalloc(
void *memblock,
size_t num,
size_t size,
size_t alignment
);
Parámetros
memblock
Puntero de bloque de memoria actual.
number
Número de elementos.
size
Tamaño en bytes de cada elemento.
alignment
Valor de la alineación, que debe ser un entero potencia de 2.
Valor devuelto
_aligned_recalloc
devuelve un puntero void al bloque de memoria reasignado (y, probablemente, trasladado). El valor devuelto es NULL
si el tamaño es cero y el argumento de búfer no NULL
es , o si no hay suficiente memoria disponible para expandir el bloque al tamaño especificado. En el primer caso, se libera el bloque original. En el segundo, el bloque original permanece inalterado. El valor devuelto apunta a un espacio de almacenamiento correctamente alineado para almacenar cualquier tipo de objeto. Para obtener un puntero a un tipo distinto a void, use una conversión de tipo en el valor devuelto.
Se trata de un error para reasignar la memoria y cambiar la alineación de un bloque.
Comentarios
_aligned_recalloc
se basa en malloc
. Para obtener más información acerca de cómo usar _aligned_offset_malloc
, vea malloc
.
Esta función establece errno
en ENOMEM
si se produce un error en la asignación de memoria o si el tamaño solicitado es mayor que _HEAP_MAXREQ
. Para obtener más información sobre errno
, consulte errno
, _doserrno
, _sys_errlist
y _sys_nerr
. Además, _aligned_recalloc
valida sus parámetros. Si alignment
no es una potencia de 2, esta función invoca al controlador de parámetros no válidos, como se describe en Validación de parámetros. Si la ejecución puede continuar, la función devuelve NULL
y establece errno
en EINVAL
.
De manera predeterminada, el estado global de esta función está limitado a la aplicación. Para cambiar este comportamiento, consulte Estado global en CRT.
Requisitos
Routine | Encabezado necesario |
---|---|
_aligned_recalloc |
<malloc.h> |