_aligned_realloc_dbg

 

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 (sólo la versión de depuración).

void * _aligned_realloc_dbg(  
   void *memblock,   
   size_t size,   
   size_t alignment,  
   const char *filename,  
   int linenumber   
);  

Parámetros

[in] memblock
Puntero de bloque de memoria actual.

[in] size
Tamaño de la asignación de memoria solicitada.

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

[in] filename
Puntero al nombre del archivo de código fuente que solicitó la operación realloc o valor NULL.

[in] linenumber
Número de línea del archivo de código fuente en la que se solicitó la operación realloc o valor NULL.

_aligned_realloc_dbg 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.

Es un error reasignar memoria y cambiar la alineación del bloque.

_aligned_realloc_dbges una versión de depuración de la _aligned_realloc (función). Cuando _DEBUG no está definido, cada llamada a _aligned_realloc_dbg se reduce a una llamada a _aligned_realloc. Ambos _ aligned_realloc y _aligned_realloc_dbg reasigna un bloque de memoria del montón base, pero _aligned_realloc_dbg admite varias características de depuración: búferes situados a cada lado de la parte de usuario del bloque que se va a comprobar si hay pérdidas, un parámetro de tipo de bloque para realizar el seguimiento de determinados tipos de asignación, y filename / linenumber información para determinar el origen de las solicitudes de asignación.

_aligned_realloc_dbg reasigna el bloque de memoria especificado con un poco más de espacio que el newSize solicitado. newSize podría ser mayor o menor que el tamaño del bloque de memoria asignado originalmente. El administrador del montón de depuración usa el espacio adicional para vincular los bloques de memoria de depuración, y para proporcionar a la aplicación información de encabezado de depuración y sobrescribir los búferes. La reasignación podría hacer que el bloque de memoria original se ponga en una ubicación distinta del montón y cambiar el tamaño del bloque de memoria. Si se mueve el bloque de memoria, el contenido del bloque original se sobrescribe.

_aligned_realloc_dbg establece errno en ENOMEM si se produce un error de asignación de memoria o si la cantidad de memoria necesaria (incluida la sobrecarga ya mencionada) es mayor que _HEAP_MAXREQ. Para obtener información sobre este y otros códigos de error, consulte errno, _doserrno, _sys_errlist y _sys_nerr.

Además, _aligned_realloc_dbg valida sus parámetros. Si alignment no es una potencia de 2, 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.

Para obtener información sobre cómo se asignan, inicializan y administran los bloques de memoria en la versión de depuración del montón base, vea CRT Debug Heap Details. Para obtener información acerca de la asignación de tipos de bloque y cómo se utilizan, consulte tipos de bloques en el montón de depuración. Para obtener información acerca de las diferencias entre llamar a una función estándar del montón y su versión de depuración en una compilación de depuración de una aplicación, consulte depurar versiones de funciones asignación del montón.

RutinaEncabezado necesario
_aligned_realloc_dbg<crtdbg.h>

Para obtener más información sobre compatibilidad, vea Compatibility en la introducción.

Versiones de depuración de bibliotecas en tiempo de ejecución de C solo.

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.

Rutinas de depuración

Mostrar: