free()
QNX SDP8.0C Library ReferenceAPIDeveloper
Deallocate a block of memory
Synopsis:
#include <stdlib.h>
void free( void* ptr );
Arguments:
- ptr
- A pointer to the block of memory that you want to free. If the pointer is NULL, the system doesn't perform any operations.
Library:
libc
Use the -l c option to qcc to link against this library. This library is usually included automatically.
Description:
The free() function deallocates the memory block specified by ptr, which was previously returned by a call to calloc(), malloc(), posix_memalign(), or realloc().
Examples:
#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;
}
Classification:
Safety: | |
---|---|
Cancellation point | No |
Signal handler | No |
Thread | Yes |
Caveats:
Calling free() on a pointer already deallocated by a call to free() or realloc() could corrupt the memory allocator's data structures.
Page updated: