Compartir a través de


_aligned_offset_realloc

Cambia el tamaño de un bloque de memoria que fue asignado con _aligned_malloc o _aligned_offset_malloc.

void * _aligned_offset_realloc(
   void *memblock, 
   size_t size, 
   size_t alignment,
   size_t offset
);

Parámetros

  • memblock
    El puntero actual del bloque de memoria.

  • size
    El tamaño de asignación de memoria.

  • 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_realloc devuelve un puntero void (y posiblemente desplazado) al bloque de memoria reasignado. El valor devuelto es NULL si el tamaño es cero y el argumento del búfer no es NULL, 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 caso, el bloque de original no varía. Los puntos del valor devuelto a un espacio de almacenamiento que se garantiza alinearse convenientemente para el almacenamiento de cualquier tipo de objeto. Para obtener un puntero a un tipo distinto de vacío, utilice una conversión de tipo del valor devuelto.

_aligned_offset_realloc es __declspec(noalias) marcado y __declspec(restrict), lo que significa que la función está garantizada para no modificar variables globales y que el puntero devuelto no es con alias. Para obtener más información, vea noalias y limitado.

Comentarios

Como _aligned_offset_malloc, _aligned_offset_realloc permite que una estructura está alineada en un desplazamiento dentro de la estructura.

_aligned_offset_realloc se basa en malloc. Para obtener más información sobre cómo utilizar _aligned_offset_malloc, vea malloc. Si memblock es NULL, la función _aligned_offset_malloc internamente.

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, vea errno, _doserrno, _sys_errlist y _sys_nerr. Además, _aligned_offset_realloc valida sus parámetros. Si alignment no es una potencia de 2, o offset es mayor o igual que size y distinto de cero, esta función invoca el 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.

Requisitos

Rutina

Encabezado necesario

_aligned_offset_realloc

<malloc.h>

Ejemplo

Para obtener más información, vea _aligned_malloc.

Vea también

Referencia

Alineación de datos