Middleware, development tools, realtime operating system
software and services for superior embedded design


Home
QNX Community Resources
QNX Documentation Library
free

free

QNX Software Systems
Developer Resources
Blogs
Board support packages
Foundry27 projects
Forums
Hardware support listing
Online video tutorials
Product documentation
Technical Articles

free()

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. It's safe to call free() with a NULL pointer.

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() 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:

ANSI, POSIX 1003.1

Safety:
Cancellation point No
Interrupt handler 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.

See also:

alloca(), calloc(), malloc(), realloc(), sbrk()