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() 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.
alloca(), calloc(), malloc(), realloc(), sbrk()