_aligned_offset_recalloc

 

Para obtener la documentación más reciente de Visual Studio 2017 RC, consulte Documentación de Visual Studio 2017 RC.

Cambia el tamaño de un bloque de memoria que se asignó con _aligned_malloc o _aligned_offset_malloc e inicializa la memoria a 0.

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.

num
Número de elementos.

size
Longitud en bytes de cada elemento.

alignment
El valor de alineación, que debe ser un entero potencia de 2.

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

_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 es NULL, o si no hay memoria suficiente para expandir el bloque al tamaño en cuestión. 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 confirmado como 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 como __declspec(noalias) y __declspec(restrict), lo que significa que se garantiza que la función no modifica variables globales y que el puntero devuelto no tiene alias. Para obtener más información, consulte noalias y restringir.

Como _aligned_offset_malloc, _aligned_offset_recalloc permite alinear en un desplazamiento dentro de la estructura de una estructura.

_aligned_offset_recallocse basa en malloc. Para obtener más información acerca del uso de _aligned_offset_malloc, consulte malloc. Si memblock es NULL, las llamadas de función _aligned_offset_malloc internamente.

Esta función establece errno a ENOMEM si el error de asignación de memoria o si el tamaño solicitado (num * size) era mayor que _HEAP_MAXREQ. Para obtener más información acerca de 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 es mayor que o igual al tamaño solicitado y distinto de cero, esta función invoca el controlador de parámetros no válidos, como se describe en validación del parámetro. Si la ejecución puede continuar, la función devuelve NULL y establece errno en EINVAL.

RutinaEncabezado necesario
_aligned_offset_recalloc<malloc.h>

No es aplicable. Para llamar a la función estándar de C, use PInvoke. Para obtener más información, vea Ejemplos de invocación de plataforma.

Alineación de datos
_recalloc
_aligned_recalloc

Mostrar: