[Previous] [Contents] [Next]

free()

Deallocate a block of memory

Synopsis:

#include <malloc.h> 

void free( void* ptr );

Library:

libc

Description:

The free() function deallocates the memory block specified by ptr, which was previously returned by a call to calloc(), malloc() or realloc().

It's safe to call free() with a NULL ptr.

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

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


[Previous] [Contents] [Next]