_aligned_offset_malloc_dbg
Размещение памяти на указанной границе выравнивания (только в отладочной версии).
Синтаксис
void * _aligned_offset_malloc_dbg(
size_t size,
size_t alignment,
size_t offset,
const char *filename,
int linenumber
);
Параметры
size
Размер запрошенного выделения памяти.
alignment
Значение выравнивания, которое должно быть целой степенью числа 2.
offset
Смещение в выделение памяти для принудительного выполнения выравнивания.
filename
Указатель на имя исходного файла, который запросил операцию выделения, или NULL
.
linenumber
Номер строки в исходном файле, в которой была запрошена операция выделения, или NULL
.
Возвращаемое значение
Указатель на выделенный блок памяти или значение NULL
в случае сбоя операции.
Замечания
_aligned_offset_malloc_dbg
— это отладочная версия _aligned_offset_malloc
функции. Если _DEBUG
не определено, каждый вызов _aligned_offset_malloc_dbg
уменьшается до вызова _aligned_offset_malloc
. И _aligned_offset_malloc
, и _aligned_offset_malloc_dbg
выполняют выделение блока памяти в основной куче, однако _aligned_offset_malloc_dbg
включает различные возможности отладки: буферы на обеих сторонах пользовательской части блока для тестирования утечек и сведения о filename
/linenumber
для определения источника запросов на выделение. Отслеживание определенных типов выделения с параметром типа блока не является поддерживаемой функцией отладки для выровненных выделений. Выровненные выделения будут отображаться как _NORMAL_BLOCK
тип блока.
_aligned_offset_malloc_dbg
выделяет блок памяти, добавив немного больше пространства, чем запрошено size
. Дополнительное пространство используется диспетчером кучи отладки для связывания блоков памяти отладки и предоставления приложению сведений о заголовках отладки и перезаписи буферов. При выделении блока пользовательская часть блока заполняется значением 0xCD, а каждый из буферов перезаписи заполняется 0xFD.
_aligned_offset_malloc_dbg
можно использовать в ситуациях, когда необходимо выравнивание вложенного элемента, например, если требуется выравнивание вложенного класса.
_aligned_offset_malloc_dbg
основан на malloc
; дополнительные сведения см. в разделе malloc
.
Эта функция задает для errno
значение ENOMEM
в случае сбоя выделения памяти или если запрошенный размер был больше _HEAP_MAXREQ
. Дополнительные сведения о , см. в errno
разделеerrno
, _doserrno
_sys_errlist
и _sys_nerr
. Кроме того, _aligned_offset_malloc
проверяет свои параметры. Если alignment
значение не равно 2, или offset
если значение не равно нулю и больше или равно size
, эта функция вызывает обработчик недопустимых параметров, как описано в разделе проверки параметров. Если продолжение выполнения разрешено, эта функция возвращает NULL
и задает для errno
значение EINVAL
.
Сведения о выделении, инициализации и управлении блоками памяти в отладочной версии базовой кучи см. в сведениях об отладочной куче CRT.
Сведения о типах блоков выделения и их использовании см. в разделе "Типы блоков" в куче отладки.
Требования
Маршрут | Обязательный заголовок |
---|---|
_aligned_offset_malloc_dbg |
<crtdbg.h> |
Дополнительные сведения о совместимости см. в разделе Совместимость.
Библиотеки
Только отладочные версии библиотек времени выполнения языка C.