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


_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 для определения источника запросов на выделение.

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

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

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

Требования

Подпрограмма

Обязательный заголовок

_aligned_malloc_dbg

<crtdbg.h>

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

Библиотеки

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

Эквивалент в .NET Framework

Неприменимо. Для вызова стандартной функции C используйте PInvoke. Дополнительные сведения см. в разделе Примеры вызова неуправляемого кода.

См. также

Ссылки

Процедуры отладки