_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, and _sys_nerr.
Сведения о том, как происходит выделение, инициализация и управление блоками памяти в отладочной версии базовой кучи см. в разделе Сведения о куче отладки CRT. Дополнительные сведения о типах блока выделения и способах их использования см. в разделе Типы блоков в куче отладки. Сведения о различиях между вызовом стандартной функции кучи и ее отладочной версии в отладочной сборке приложения см. в разделе Версии отладки функций выделения кучи.
Требования
Подпрограмма |
Обязательный заголовок |
---|---|
_free_dbg |
<crtdbg.h> |
Дополнительные сведения о совместимости см. в разделе Совместимость во введении.
Пример
Пример использования _free_dbg см. в разделе crt_dbg2.
Эквивалент в .NET Framework
Неприменимо. Для вызова стандартной функции C используйте PInvoke. Дополнительные сведения см. в разделе Примеры вызовов неуправляемого кода.