free()

Освободить выделенный блок памяти

Прототип:

#include <stdlib.h>
void free( void *ptr );

Аргументы:

ptr
Указатель на блок памяти, который необходимо освободить. Вызов free() с указателем на NULL является безопасным.

Библиотека:

libc

Описание:

Функция free() освобождает блок памяти, определяемый ptr, который ранее был возвращен вызовом calloc(), malloc() или realloc().

Примеры:

#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
int main( void )
{
char *buffer;
buffer = (char *)malloc( 80 );
if ( buffer == NULL )
{
printf( "Unable to allocate memory\n" );
return (EXIT_FAILURE);
} else {
/* rest of code goes here */
free( buffer ); /* deallocate buffer */
}
return (EXIT_SUCCESS);
}

Классификация:

ANSI, POSIX 1003.1

Точка остановки потока
Нет
Обработчик прерываний
Нет
Обработчик сигналов
Нет
В потоке
Да

Предостережения:

Вызов free() для указателя, уже освобожденного вызовом free() или realloc(), может повредить структуры данных распределения памяти.

Тематические ссылки:

alloca(), calloc(), malloc(), realloc(), sbrk()




Предыдущий раздел: Описание API системной библиотеки