Deallocate a block of memory
#include <stdlib.h> void free( void* ptr );
libc
Use the -l c option to qcc to link against this library. This library is usually included automatically.
The free() function deallocates the memory block specified by ptr, which was previously returned by a call to calloc(), malloc(), posix_memalign(), or 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;
}
| Safety: | |
|---|---|
| Cancellation point | No | 
| Interrupt handler | No | 
| Signal handler | No | 
| Thread | Yes | 
Calling free() on a pointer already deallocated by a call to free() or realloc() could corrupt the memory allocator's data structures.