6.19.17 free Function
Frees dynamically allocated memory.
Include
<stdlib.h>
Prototype
void free(void * ptr);
Argument
ptr
- pointer to the memory to be freed
Remarks
Frees memory previously allocated with calloc
, malloc
or
realloc
. If free
is used on space that has already been
deallocated (by a previous call to free
or by realloc
) or on
space not allocated with calloc
, malloc
or
realloc
, the behavior is undefined.
When using the simple implementation of dynamic memory allocation, only a rudimentary merging of freed memory blocks is performed. See your MPLAB XC compiler User's Guide for more information on how dynamic memory allocation is implemented with your compiler.
Example
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
long *i;
if ((i = (long *)malloc(50 * sizeof(long))) == NULL)
printf("Cannot allocate memory\n");
else
{
printf("Memory allocated\n");
free(i);
printf("Memory freed\n");
}
}
Example Output
Memory allocated
Memory freed