Освободить выделенный блок памяти
#include <stdlib.h>void free( void *ptr );
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 системной библиотеки