Example: realloc

In the following example, realloc enlarges a previously allocated buffer, buf, of length 1024, to a length of 2048 bytes.

#include <malloc.h>
    char * buf, * biggerbuf;
    if ((buf = (char *)malloc(1024, sizeof(char))) == NULL) {
        lr_output_message ("Insufficient memory available");
        return -1;
    }
    lr_output_message ("Memory allocated. Buffer address = %.8x", buf);
    // Now reallocate buf to size of 2048 bytes 
    if ((biggerbuf = (char *)realloc(buf, 2048)) == NULL) {
        lr_output_message ("Unable to re-allocate memory");
        return -1;
    }
    buf = biggerbuf;
    lr_output_message ("Memory reallocated. Buffer address = %.8x", buf);
    // Do something with the buffer here ...
    // Now free the buffer
    free(buf);
Output:
Action.c(11): Memory allocated. Buffer address = 007b9d88
Action.c(20): Memory reallocated. Buffer address = 007b9d88