7.20.3.2 The
freefunctionSynopsis
#include <stdlib.h> void free(void *ptr);Description
The
freefunction causes the space pointed to byptrto be deallocated, that is, made
available for further allocation. Ifptris a null pointer, no action occurs.
See ISO-IEC 9899.
That being said, when looking at different codebases in the wild, you’ll notice people sometimes do:
if (ptr)
free(ptr);
This is because some C runtimes (I for sure remember it was the case on PalmOS) would crash when freeing a NULL pointer.
But nowadays, I believe it’s safe to assume free(NULL) is a nop as per instructed by the standard.