Поделиться через


_aligned_malloc_dbg

Выделяет память на указанной границе выравнивания с дополнительным пространством для заголовка отладки и перезаписи буферов (только отладочная версия).

Синтаксис

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

Параметры

size
Размер запрошенного размещения памяти.

alignment
Значение выравнивания, которое должно быть целой степенью числа 2.

filename
Указатель на имя исходного файла, который запросил операцию выделения, или NULL.

linenumber
Номер строки в исходном файле, в которой была запрошена операция выделения, или NULL.

Возвращаемое значение

Указатель на выделенный блок памяти или значение NULL в случае сбоя операции.

Замечания

_aligned_malloc_dbg — это отладочная версия _aligned_malloc функции. Если _DEBUG не определено, каждый вызов _aligned_malloc_dbg уменьшается до вызова _aligned_malloc. И _aligned_malloc, и _aligned_malloc_dbg выполняют выделение блока памяти в основной куче, однако _aligned_malloc_dbg включает различные возможности отладки: буферы на обеих сторонах пользовательской части блока для тестирования утечек и сведения о filename/linenumber для определения источника запросов на выделение. Отслеживание определенных типов выделения с параметром типа блока не является поддерживаемой функцией отладки для выровненных выделений. Выровненные выделения будут отображаться как _NORMAL_BLOCK тип блока.

_aligned_malloc_dbg выделяет блок памяти, добавив немного больше пространства, чем запрошено size. Дополнительное пространство используется диспетчером кучи отладки для связывания блоков памяти отладки и предоставления приложению сведений о заголовках отладки и перезаписи буферов. При выделении блока пользовательская часть блока заполняется значением 0xCD, а каждый из буферов перезаписи заполняется 0xFD.

_aligned_malloc_dbg задает для errno значение ENOMEM в случае сбоя выделения памяти или если необходимый объем памяти (включая ранее упомянутую нагрузку) превышает _HEAP_MAXREQ. Сведения об этом и других кодах ошибок см. в разделе errno, _doserrnoи _sys_errlist_sys_nerr. Кроме того, _aligned_malloc_dbg проверяет свои параметры. Если alignment значение равно 2 или size равно нулю, эта функция вызывает обработчик недопустимых параметров, как описано в разделе проверки параметров. Если продолжение выполнения разрешено, эта функция возвращает NULL и задает для errno значение EINVAL.

Сведения о выделении, инициализации и управлении блоками памяти в отладочной версии базовой кучи см. в сведениях об отладочной куче CRT. Сведения о типах блоков выделения и их использовании см. в разделе "Типы блоков" в куче отладки. Сведения о различиях между стандартными функциями кучи и их версиями отладки см. в разделе "Отладка версий функций выделения кучи".

Требования

Маршрут Обязательный заголовок
_aligned_malloc_dbg <crtdbg.h>

Дополнительные сведения о совместимости см. в разделе Совместимость.

Библиотеки

Только отладочные версии библиотек времени выполнения языка C.

См. также

Отладка подпрограмм