Suppose I came across an instance in a program where I would either free a NULL pointer, or first check whether it was NULL and skip the free()
function call.
Would it be more efficient to simply free a NULL pointer? I searched around a bit and apparently, for implementations post C89, it is harmless to free a NULL pointer - so the decision comes down to efficiency.
My presumption is that there may potentially entail quite a bit of overhead when calling free()
. As such, perhaps the simple logical check before calling the free()
function is quite necessary.
tl;dr version,
What is happening internally when a call to free()
is made that may make it more or less efficient to first check whether or pointer is NULL before freeing?