_malloc_dbg
Выделяет блок памяти в куче с пробелом для заголовка отладки и перезапишет буферы (отладочные версии).
void *_malloc_dbg(
size_t size,
int blockType,
const char *filename,
int linenumber
);
Параметры
size
Запрошенный размер блока памяти (в байтах).blockType
Запрошенный тип блока памяти. _CLIENT_BLOCK OR _NORMAL_BLOCK.filename
Указатель на имя исходного файла, запросившего операцию или NULL распределения.linenumber
Номер линии в исходном файле, где была запрошена операция выделения или NULL.
filename и linenumber параметры доступны только при _malloc_dbg вызывает явно или _CRTDBG_MAP_ALLOC константа препроцессора была определена.
Возвращаемое значение
При успешном завершении, эта функция возвращает указатель на части пользователя выделенного блока памяти вызывает новую функцию обработчика или возвращает значение NULL.Полное описание возвращенной расширения функциональности см. в следующем разделе " примечания ".Дополнительные сведения о том, как новая функция обработчика используется см. в разделе malloc функция.
Заметки
_malloc_dbg отладочная версия malloc функция.После _Отладка не определяет каждый вызов _malloc_dbg уменьшает к вызову malloc.Оба malloc и _malloc_dbg выберите блок памяти в куче, но базовой _malloc_dbg есть несколько функций отладки: буферы с обеих сторон части блока пользователя проверяемое для параметра типа блока утечки, чтобы отслеживать определенные типы распределения и filename/linenumber сведения, чтобы указать начало координат запросов выделения.
_malloc_dbg выделяет блок памяти с немного больше места, чем запрошено size.Дополнительное пространство используется диспетчером отладочной кучи для связывания блоки памяти, отладки и предоставить приложению отладочные данные заголовка и перезаписать буферы.При выборе части блока пользователя блока заполняется значением 0xCD и каждый из буферов, чтобы переписать заполнено 0xFD.
_malloc_dbg наборы errno В ENOMEM, если выделение памяти завершается неудачей или при необходимости объем памяти (включая дополнительную нагрузку, упомянутые ранее) превышает _HEAP_MAXREQ.Дополнительные сведения об этом и других кодах ошибок см. в разделе errno, _doserrno, _sys_errlist и _sys_nerr.
Сведения о том, как блоки памяти, выделенные инициализируются и управляемые в отладочной версии базовой кучи см. в разделе Управление памятью и куча отладки.
Дополнительные сведения о типах блока распределения и способы их использования см. в разделе Типы блоков в куче отладки.
Требования
Процедура |
Обязательный заголовок |
---|---|
_malloc_dbg |
<crtdbg.h> |
Дополнительные сведения о совместимости см. Совместимость во введении.
Библиотеки
Отладочные версии Библиотеки времени выполнения C только для чтения.
Пример
Пример использования _malloc_dbgсм. в разделах crt_dbg1.
Эквивалент в .NET Framework
Неприменимо. Для c# используйте стандартная функция PInvoke. Дополнительные сведения см. в разделе Примеры вызовов неуправляемого кода.