free
Отмена выделения или свободены блока памяти.
void free(
void *memblock
);
Параметры
- memblock
Ранее выделенный блок памяти.
Заметки
free блок памяти (освобождает функцииmemblock), который ранее выбрать вызовом calloc" mallocили realloc.Число байтов освобоженных эквивалентное числу запрошенных байтов, если блок был выбран (или, в случае reallocated realloc).If memblock существует NULLуказатель, а не учитывается free немедленно завершает работу.Попытка высвободить недопустимый указатель (указатель на блок памяти, который не был выбран by calloc" mallocили realloc) может повлиять на последующие запросы распределения и вызывать ошибки.
При возникновении ошибки в освобождение памяти; errno набор со сведениями из операционной системы на природе сбоя.Дополнительные сведения см. в разделе errno, _doserrno, _sys_errlist и _sys_nerr.
После блока памяти был освобождается, _heapmin свернуть объем свободной памяти в куче путем слияния неиспользуемые области и освобождение их обратно в операционной системе.Освобоженная освобождена память, не в операционной системе восстановлена до бесплатного пул и доступен для повторного распространения.
При связывании с отладочной версией библиотеки времени выполнения c free позволяет к _free_dbg.Дополнительные сведения об управляемой куче во время процесса отладки см. в разделах Куча отладки для CRT.
free помечает __declspec(noalias), чтобы гарантированно изменяет функция глобальные переменные.Дополнительные сведения см. в разделе noalias.
Освободить память, выделенную с _mallocaиспользование _freea.
Требования
Функция |
Обязательный заголовок |
---|---|
free |
<stdlib.h> и <malloc.h> |
Дополнительные сведения о совместимости см. Совместимость во введении.
Пример
См. пример malloc.
Эквивалент в .NET Framework
Неприменимо. Для c# используйте стандартная функция PInvoke. Дополнительные сведения см. в разделе Примеры вызовов неуправляемого кода.