_aligned_malloc_dbg
Asigna memoria en un límite de alineación especificado con espacio adicional para un encabezado de depuración y sobrescribir búferes (solo versión de depuración).
Sintaxis
void * _aligned_malloc_dbg(
size_t size,
size_t alignment,
const char *filename,
int linenumber
);
Parámetros
size
Tamaño de la asignación de memoria solicitada.
alignment
Valor de la alineación, que debe ser un entero potencia de 2.
filename
Puntero al nombre del archivo de código fuente que solicitó la operación de asignación o valor NULL
.
linenumber
Número de línea del archivo de código fuente en la que se solicitó la operación de asignación o valor NULL
.
Valor devuelto
Puntero al bloque de memoria que se asignó o NULL
si se produjo un error en la operación.
Comentarios
_aligned_malloc_dbg
es una versión de depuración de la _aligned_malloc
función. Cuando _DEBUG
no se define, cada llamada a se reduce a _aligned_malloc_dbg
una llamada a _aligned_malloc
. _aligned_malloc
y _aligned_malloc_dbg
asignan un bloque de memoria del montón base, pero _aligned_malloc_dbg
ofrece varias características de depuración: búferes situados a cada lado de la parte del usuario del bloque para comprobar si hay pérdidas, así como información sobre filename
/linenumber
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.
_aligned_malloc_dbg
asigna el bloque de memoria con un poco más de espacio que el size
solicitado. 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. Cuando se asigna el bloque, la parte del usuario del bloque se rellena con el valor 0xCD y cada uno de los búferes de sobrescritura se rellena con 0xFD.
_aligned_malloc_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 más información sobre este y otros códigos de error, vea errno
, _doserrno
, _sys_errlist
y _sys_nerr
. Además, _aligned_malloc_dbg
valida sus parámetros. Si alignment
no es una potencia de 2 o size
cero, 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_malloc_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.