_aligned_offset_realloc_dbg
Cambia el tamaño de un bloque de memoria asignado con _aligned_malloc
o _aligned_offset_malloc
(solo versión de depuración).
Sintaxis
void * _aligned_offset_realloc_dbg(
void *memblock,
size_t size,
size_t alignment,
size_t offset,
const char *filename,
int linenumber
);
Parámetros
memblock
Puntero de bloque de memoria actual.
size
Tamaño de la 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.
filename
Puntero al nombre del archivo de origen que solicitó la aligned_offset_realloc
operación o NULL
.
linenumber
Número de línea del archivo de origen donde se solicitó la aligned_offset_realloc
operación o NULL
.
Valor devuelto
_aligned_offset_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 NULL
es , 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, el bloque original permanece inalterado. El valor devuelto apunta a un espacio de almacenamiento que está alineado de forma adecuada para el almacenamiento de cualquier tipo de objeto. Para obtener un puntero a un tipo distinto a void, use una conversión de tipo en el valor devuelto.
Comentarios
_aligned_offset_realloc_dbg
es una versión de depuración de la _aligned_offset_realloc
función. Cuando _DEBUG
no se define, cada llamada a se reduce a _aligned_offset_realloc_dbg
una llamada a _aligned_offset_realloc
. Tanto _aligned_offset_realloc
como _aligned_offset_realloc_dbg
reasignan un bloque de memoria en el montón base, pero _aligned_offset_realloc_dbg
admiten varias características de depuración: búferes en cualquier lado de la parte del usuario del bloque para probar las pérdidas e filename
/linenumber
información para determinar el origen de las solicitudes de asignación. El seguimiento de tipos de asignación específicos con un parámetro de tipo de bloque no es una característica de depuración compatible para las asignaciones alineadas. Las asignaciones alineadas aparecerán como un _NORMAL_BLOCK
tipo de bloque.
Al igual _aligned_offset_malloc
que , _aligned_offset_realloc_dbg
permite que una estructura se alinee en un desplazamiento dentro de la estructura.
_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 de montón de depuración usa el espacio adicional para vincular los bloques de memoria de depuración y proporcionar a la aplicación información de encabezado de depuración y sobrescribir búferes. La reasignación puede mover el bloque de memoria original a una ubicación diferente en el montón y también cambiar el tamaño del bloque de memoria. Si se mueve el bloque de memoria, el contenido del bloque original se sobrescribe.
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
, consulte errno
, _doserrno
, _sys_errlist
y _sys_nerr
. Además, _aligned_offset_realloc_dbg
valida sus parámetros. Si alignment
no es una potencia de 2 o si offset
no es cero y mayor o igual que size
, esta función invoca al 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, consulte Detalles del montón de depuración de CRT. Para obtener información sobre los tipos de bloques de asignación y cómo se usan, consulte Tipos de bloques en el montón de depuración. Para obtener información sobre las diferencias entre las funciones de montón estándar y sus versiones de depuración, consulte Depuración de versiones de funciones de asignación de montón.
Requisitos
Routine | Encabezado necesario |
---|---|
_aligned_offset_realloc_dbg |
<crtdbg.h> |
Para obtener más información sobre compatibilidad, consulte Compatibilidad.
Bibliotecas
Solo versiones de depuración de las bibliotecas en tiempo de ejecución de C.