Se recomienda usar Visual Studio 2017

_aligned_offset_malloc_dbg

 

Para obtener la documentación más reciente de Visual Studio 2017 RC, consulte Documentación de Visual Studio 2017 RC.

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

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

Parámetros

[in] size
Tamaño de la asignación de memoria solicitada.

[in] alignment
Valor de la alineación, que debe ser un entero potencia de 2.

[in] offset
Desplazamiento en la asignación de memoria para imponer la alineación.

[in] filename
Puntero al nombre del archivo de código fuente que solicitó la operación de asignación o valor 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 valor NULL.

Puntero al bloque de memoria que se asignó o NULL si se produjo un error en la operación.

_aligned_offset_malloc_dbges una versión de depuración de la _aligned_offset_malloc (función). Cuando _DEBUG no está definido, cada llamada a _aligned_offset_malloc_dbg se reduce a una llamada a _aligned_offset_malloc. Ambos _aligned_offset_malloc y _aligned_offset_malloc_dbg asignar un bloque de memoria del montón base, pero _aligned_offset_malloc_dbg ofrece varias características de depuración: búferes situados a cada lado de la parte de usuario del bloque que se va a comprobar si hay pérdidas, un parámetro de tipo de bloque para realizar el seguimiento de determinados tipos de asignación, y filename / linenumber información para determinar el origen de las solicitudes de asignación.

_aligned_offset_malloc_dbg asigna el bloque de memoria con un poco más de espacio que el size solicitado. 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. Cuando se asigna el bloque, la parte del usuario de bloque se rellena con el valor 0xCD y cada uno de los búferes sobrescritos se rellena con 0xFD.

_aligned_offset_malloc_dbg es útil en situaciones en las que la alineación se necesita en un elemento anidado, por ejemplo si se necesitara la alineación en una clase anidada.

_aligned_offset_malloc_dbgse basa en malloc; para obtener más información, consulte malloc.

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 acerca de errno, consulte 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 offset es mayor o igual a size y distinto de cero, esta función invoca el controlador de parámetros no válidos, como se describe en validación del parámetro. 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 CRT Debug Heap Details.

Para obtener información acerca de la asignación de tipos de bloque y cómo se utilizan, consulte tipos de bloques en el montón de depuración.

RutinaEncabezado necesario
_aligned_offset_malloc_dbg<crtdbg.h>

Para obtener más información sobre compatibilidad, vea Compatibility en la introducción.

Versiones de depuración de bibliotecas en tiempo de ejecución de C solo.

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.

Rutinas de depuración

Mostrar: