_free_dbg
Освобождает блок памяти в куче (только в отладочной версии).
Синтаксис
void _free_dbg(
void *userData,
int blockType
);
Параметры
userData
Указатель на выделенный блок памяти, который требуется освободить.
blockType
Тип выделенного блока памяти, который требуется освободить: _CLIENT_BLOCK
, _NORMAL_BLOCK
или _IGNORE_BLOCK
.
Замечания
Функция _free_dbg
— это отладочная версия free
функции. Если _DEBUG
не определено, каждый вызов _free_dbg
уменьшается до вызова free
. И free
, и _free_dbg
освобождают блок памяти в основной куче, однако _free_dbg
включает две возможности отладки: возможность хранить освободившиеся блоки в связанном списке кучи для моделирования условий недостатка памяти, а также параметр типа блока для освобождения блоков выделенной памяти конкретного типа.
_free_dbg
выполняет проверку действительности для всех указанных файлов и расположений блоков перед выполнением операции освобождения. Приложение не должно предоставлять эти сведения. При освобождении блока памяти диспетчер кучи отладки автоматически проверяет целостность буферов на обеих сторонах пользовательской части. При обнаружении перезаписи он выдает отчет об ошибке. _CRTDBG_DELAY_FREE_MEM_DF
Если задано битовое поле _crtDbgFlag
флага, освобожденный блок заполняется значением 0xDD, присваивается _FREE_BLOCK
тип блока и хранится в связанном списке блоков памяти кучи.
В случае возникновения ошибки при освобождении памяти для errno
задаются сведения о характере сбоя, полученные от операционной системы. Дополнительные сведения см. в разделе errno
, _doserrno
, _sys_errlist
, и _sys_nerr
.
Сведения о выделении, инициализации и управлении блоками памяти в отладочной версии базовой кучи см. в сведениях об отладочной куче CRT. Сведения о типах блоков выделения и их использовании см. в разделе "Типы блоков" в куче отладки. Сведения о различиях между вызовом стандартной функции кучи и версией отладки см. в разделе "Отладка" версий функций выделения кучи.
Требования
Маршрут | Обязательный заголовок |
---|---|
_free_dbg |
<crtdbg.h> |
Дополнительные сведения о совместимости см. в разделе Совместимость.
Пример
Пример использования _free_dbg
см. в разделе crt_dbg2
.