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


свободные

Освобождает блок памяти.

void free( 
   void *memblock 
);

Параметры

  • memblock
    Ранее выделенный блок памяти, который необходимо освободить.

Заметки

Функция free освобождает блок памяти (memblock), который был выделен ранее вызовом calloc, malloc или realloc. Число освобожденных байтов равно количеству байтов, которые были выделены (или выделены заново, если использовалась функция realloc). Если memblock имеет значение NULL, указатель не обрабатывается и free немедленно возвращает управление. Попытка освободить недопустимый указатель (указатель на блок памяти, который не был выделен calloc, malloc или realloc) может повлиять на последующие запросы на выделение и вызывать ошибки.

При возникновении ошибки освобождения памяти, в errno заносятся данные операционной системы, которые объясняют причину ошибки. Для получения дополнительной информации см. errno, _doserrno, _sys_errlist, and _sys_nerr.

После освобождения блока памяти, _heapmin минимизирует объем свободной памяти в куче путем объединения неиспользуемых областей и передачи их обратно операционной системе. Освобожденная память, которая не возвращена операционной системе, возвращается в пул свободной памяти и снова доступна для выделения.

Когда приложение связано с отладочной версией библиотек времени выполнения языка C, free соответствует _free_dbg. Дополнительные сведения о том, как происходит управление кучей в процессе отладки см. в разделе Отладочная куча CRT.

free помечена как __declspec(noalias); это означает, что функция гарантировано не изменяет глобальные переменные. Дополнительные сведения см. в разделе noalias.

Для освобождения памяти, которая выделена _malloca, используйте _freea.

Требования

Функция

Обязательный заголовок

free

<stdlib.h> и <malloc.h>

Дополнительные сведения о совместимости см. в разделе Совместимость во введении.

Пример

См. пример для malloc.

Эквивалент в .NET Framework

Неприменимо. Для вызова стандартной функции C используйте PInvoke. Дополнительные сведения см. в разделе Примеры вызовов неуправляемого кода.

См. также

Ссылки

Выделение памяти

_alloca

calloc

malloc

realloc

_free_dbg

_heapmin

_freea