Compartir a través de


_aligned_offset_malloc_dbg

Asigna memoria en un límite de alineación especificado (versión de depuración solo).

void * _aligned_offset_malloc_dbg(
   size_t size, 
   size_t alignment, 
   size_t offset,
   const char *filename,
   int linenumber 
);

Parámetros

  • [in] size
    El tamaño de asignación de memoria solicitada.

  • [in] alignment
    El valor alignment, que debe ser una potencia entero de 2.

  • [in] offset
    el desplazamiento en la asignación de memoria para forzar la alineación.

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

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

Valor devuelto

Un puntero al bloque de memoria que fue asignado o a NULLsi se produjo un error en la operación.

Comentarios

_aligned_offset_malloc_dbg es una versión de depuración de la función de _aligned_offset_malloc .Cuando _DEBUG no está definido, cada llamada a _aligned_offset_malloc_dbg se reduce a una llamada a _aligned_offset_malloc._aligned_offset_malloc y _aligned_offset_malloc_dbg asignan un bloque de memoria del montón base, pero _aligned_offset_malloc_dbg proporciona 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.

_aligned_offset_malloc_dbg asigna el bloque de memoria con ligeramente más espacio que sizesolicitado.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.Cuando se asigna el bloque, rellenan a la parte del usuario de bloque con el valor 0xCD y cada uno de los búferes sobrescribirán se rellena con 0xFD.

_aligned_offset_malloc_dbg es útil en situaciones donde es necesaria la alineación en un elemento anidado; por ejemplo, si alignment es necesaria en una clase anidada.

_aligned_offset_malloc_dbg se basa en malloc; para obtener más información, vea malloc.

Esta función establece errno a ENOMEM aunque falle la asignación de memoria o si el tamaño solicitado era mayor que _HEAP_MAXREQ.Para obtener más información sobre errno, vea errno, _doserrno, _sys_errlist, y _sys_nerr.Además, _aligned_offset_malloc valida sus parámetros.Si alignment no es una potencia de 2 o si es offset mayor o igual size y distinto de cero, esta función invoca el controlador no válido de parámetro, tal y como se describe en Validación de parámetros.Si la ejecución puede continuar, esta función devuelve NULL y establece errno a EINVAL.

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.

Requisitos

rutina

Encabezado necesario

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

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