Compartir a través de


_realloc_dbg

Reasigna un bloque de memoria especificado en la pila moviendo o cambiando el tamaño del bloque (versión de depuración solo).

void *_realloc_dbg(
   void *userData,
   size_t newSize,
   int blockType,
   const char *filename,
   int linenumber 
);

Parámetros

  • userData
    Puntero al bloque de memoria previamente asignado.

  • newSize
    Tamaño solicitado para el bloque reasignado (bytes).

  • blockType
    tipo solicitado para el bloque reasignado: _CLIENT_BLOCK o _NORMAL_BLOCK.

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

  • linenumber
    Número de línea en el archivo de código fuente donde la operación de realloc se solicitó o NULL.

Los parámetros de filename y de linenumber sólo están disponibles cuando _realloc_dbg se ha denominado explícitamente o constante de preprocesador _CRTDBG_MAP_ALLOC ha sido definidas.

Valor devuelto

Cuando se complete correctamente, esta función devuelve un puntero a la parte del usuario del bloque de memoria reasignado, llama a la nueva función de controlador, o devuelve NULL.Para obtener una descripción completa del comportamiento de vuelta, vea la siguiente sección de notas.Para obtener más información sobre cómo se usa la nueva función de controlador, vea la función de realloc .

Comentarios

_realloc_dbg es una versión de depuración de la función de realloc .Cuando _DEBUG no está definido, cada llamada a _realloc_dbg se reduce a una llamada a realloc.realloc y _realloc_dbg reasignan un bloque de memoria del montón base, pero _realloc_dbg incluye varias características de depuración: búferes situados a cada lado de la parte del usuario del bloque para comprobar que escape, un parámetro blocktype para realizar tipos específicos de asignación, y filename/información delinenumber determinan el origen de las solicitudes de asignación.

_realloc_dbg reasigna el bloque de memoria especificado con ligeramente más espacio que newSizesolicitado.newSize sea mayor o menor que el tamaño del bloque de memoria originalmente asignado.El espacio adicional usa el administrador del montón de depuración para vincular los bloques de memoria de depuración y proporcionar la aplicación con la información de encabezado de depuración y sobrescribir los búferes.La reasignación puede permitir mover el bloque de memoria original a una ubicación diferente de la pila, así como cambiar el tamaño del bloque de memoria.Si se mueve el bloque de memoria, el contenido del bloque original se sobrescriben.

_realloc_dbg establece errno a ENOMEM si se produce una asignación de memoria o si la cantidad de memoria necesaria (sobrecarga incluidos mencionada previamente) supera _HEAP_MAXREQ.Para obtener información sobre estos y otros códigos de error, vea errno, _doserrno, _sys_errlist, y _sys_nerr.

Para obtener información sobre cómo los bloques de memoria se asignan, inicialice, y se administran en la versión de depuración del montón base, vea Administración de memoria y el montón de depuración.Para obtener información sobre la asignación bloquee los tipos y cómo se utilizan, vea Tipos de bloques del montón de depuración.Para obtener información sobre las diferencias entre llamar a una función estándar de la pila y la versión de depuración en una compilación de depuración de una aplicación, vea Con la versión Versus de depuración la versión base.

Requisitos

rutina

Encabezado necesario

_realloc_dbg

<crtdbg.h>

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

bibliotecas

Versiones de depuración de Bibliotecas en tiempo de ejecución de C únicamente.

Ejemplo

Vea el ejemplo del tema de _msize_dbg .

Equivalente en .NET Framework

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

Vea también

Referencia

Rutinas de depuración

_malloc_dbg