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


_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.

См. также

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