#include <stdlib.h>
void free(void *ptr);
The free() function frees a block of storage pointed to by ptr. The ptr variable points to a block previously reserved with a call to calloc(), malloc(), or realloc(). The number of bytes freed is the number of bytes specified when you reserved (or reallocated, in the case of realloc()), the block of storage. If ptr is NULL, free() simply returns without freeing anything. Since ptr is passed by value free() will not set ptr to NULL after freeing the memory to which it points.
free() returns no value.