Compartir a través de


_aligned_offset_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_offset_recalloc(
   void *memblock,
   size_t num,
   size_t size,
   size_t alignment,
   size_t offset
);

Parámetros

memblock
Puntero de bloque de memoria actual.

number
Número de elementos.

size
Longitud en bytes de cada elemento.

alignment
Valor de la alineación, que debe ser un entero potencia de 2.

offset
Desplazamiento en la asignación de memoria para imponer la alineación.

Valor devuelto

_aligned_offset_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 NULLes , 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.

_aligned_offset_recalloc está marcado __declspec(noalias) como y __declspec(restrict), lo que significa que se garantiza que la función no modifique las variables globales y que el puntero devuelto no tenga alias. Para obtener más información, vea noalias y restrict.

Comentarios

Al igual _aligned_offset_mallocque , _aligned_offset_recalloc permite que una estructura se alinee en un desplazamiento dentro de la estructura.

_aligned_offset_recalloc se basa en malloc. Para obtener más información acerca de cómo usar _aligned_offset_malloc, vea malloc. Si memblock es NULL, la función llama internamente a _aligned_offset_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 (number * size) es mayor que _HEAP_MAXREQ. Para obtener más información sobre errno, consulte errno, _doserrno, _sys_errlist y _sys_nerr. Además, _aligned_offset_recalloc valida sus parámetros. Si alignment no es una potencia de 2 o si offset no es cero y es mayor o igual que la solicitada size, 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_offset_recalloc <malloc.h>

Consulte también

Alineación de datos
_recalloc
_aligned_recalloc