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


_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. Дополнительные сведения см. в разделе Примеры вызовов неуправляемого кода.

См. также

Ссылки

Процедуры отладки

_malloc_dbg