free - free allocated memory
void free(void *ptr);
[CX] The functionality described on this reference page is aligned with the ISO C standard. Any conflict between the requirements described here and the ISO C standard is unintentional. This volume of POSIX.1-2017 defers to the ISO C standard.
The free() function shall cause the space pointed to by ptr to be deallocated; that is, made available for further allocation. If ptr is a null pointer, no action shall occur. Otherwise, if the argument does not match a pointer earlier returned by a function in POSIX.1-2017 that allocates memory as if by malloc(), or if the space has been deallocated by a call to free() or realloc(), the behavior is undefined.
Any use of a pointer that refers to freed space results in undefined behavior.
The free() function shall not return a value.
No errors are defined.
There is now no requirement for the implementation to support the inclusion of <malloc.h>.
calloc, malloc, posix_memalign, realloc
First released in Issue 1. Derived from Issue 1 of the SVID.
Reference to the valloc() function is removed.
The DESCRIPTION is updated to clarify that if the pointer returned is not by a function that allocates memory as if by malloc(), then the behavior is undefined.
return to top of page