Using free() to release allocated dynamic memory. - C Memory

C examples for Memory:free

Description

Using free() to release allocated dynamic memory.

Demo Code

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define BLOCKSIZE 3000000/*ww  w .ja  va2  s .c om*/

int main( void )
{
    void *ptr1, *ptr2;

    /* Allocate one block. */

    ptr1 = malloc(BLOCKSIZE);

    if (ptr1 != NULL)
        printf("\nFirst allocation of %d bytes successful.",BLOCKSIZE);
    else{
        printf("\nAttempt to allocate %d bytes failed.\n",BLOCKSIZE);
        exit(1);
    }

    /* allocate another block. */

    ptr2 = malloc(BLOCKSIZE);

    if (ptr2 != NULL){
        printf("\nSecond allocation of %d bytes successful.\n", BLOCKSIZE);
        exit(0);
    }
    /* If not successful, free the first block and try again.*/

    printf("\nSecond attempt to allocate %d bytes failed.",BLOCKSIZE);
    free(ptr1);

    ptr2 = malloc(BLOCKSIZE);

    if (ptr2 != NULL)
        printf("\nAfter free(), allocation of %d bytes successful.\n", BLOCKSIZE);
    return 0;
}

Result


Related Tutorials