Compartir a través de


_aligned_recalloc_dbg

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

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

Parámetros

  • [in] memblock
    Puntero de bloque de memoria actual.

  • [in] num
    Número de elementos.

  • [in] size
    Tamaño en bytes de cada elemento.

  • [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 de asignación o NULL.

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

Valor devuelto

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

Comentarios

_aligned_recalloc_dbg es una versión de depuración de la función _aligned_recalloc. Si no se define _DEBUG, cada llamada a _aligned_recalloc_dbg se reduce a una llamada a _aligned_recalloc. _aligned_recalloc y _aligned_recalloc_dbg reasignan los bloques de memoria del montón base, pero _aligned_recalloc_dbg ofrece varias características de depuración: búferes situados a cada lado de la parte del usuario del bloque en el que se va a comprobar si hay pérdidas, un parámetro de tipo de bloque para realizar el seguimiento de tipos de asignación concretos e información sobre filename/linenumber para conocer el origen de las solicitudes de asignación.

_aligned_recalloc_dbg reasigna el bloque de memoria especificado con un poco más de espacio del solicitado (num * size), que 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. La parte del usuario de bloque se rellena con el valor 0xCD y los búferes sobrescritos se rellenan con 0xFD.

_aligned_recalloc_dbg establece errno en ENOMEM si se produce un error de asignación de memoria. Se devuelve EINVAL si la cantidad de memoria necesaria (incluida la sobrecarga ya mencionada) es mayor que _HEAP_MAXREQ. Para obtener más información sobre este y otros códigos de error, vea errno, _doserrno, _sys_errlist y _sys_nerr.

Además, _aligned_recalloc_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 de parámetros. 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 Detalles del montón de depuración de CRT. Para más información sobre los tipos de bloques de asignación y su uso, vea Tipos de bloques en el montón de depuración. Para obtener información sobre 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, vea Versiones de depuración de las funciones de asignación del montón.

Requisitos

Rutina

Encabezado necesario

_aligned_recalloc_dbg

<crtdbg.h>

Para obtener más información de compatibilidad, vea Compatibilidad en la Introducción.

Bibliotecas

Solo las versiones de depuración de las bibliotecas en tiempo de ejecución de C.

Equivalente en .NET Framework

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.

Vea también

Referencia

Rutinas de depuración