freeing NULL pointer

Nicholas Sherlock n.sherlock@gmail.com
Fri Apr 9 13:56:00 GMT 2010


On 10/04/2010 12:52 a.m., John (Eljay) Love-Jensen wrote:
> Hi Cedric,
>
>> Doesn't C99 (7.20.3.2) says passing NULL to free() just does nothing?
>
> Could be.
>
> I'm behind the times with C99.  I last used C in 1989.
>
> I am not sure if the Standard C Library calls from C++ will comply with C99.

The C89 draft says:

"4.10.3.2 The free function

Synopsis

          #include <stdlib.h>
          void free(void *ptr);

Description

    The free function causes the space pointed to by ptr to be
deallocated, that is, made available for further allocation.  If ptr
is a null pointer, no action occurs.  Otherwise, if the argument does
not match a pointer earlier returned by the calloc , malloc , or
realloc function, or if the space has been deallocated by a call to
free or realloc , the behavior is undefined."

Cheers,
Nicholas Sherlock



More information about the Gcc-help mailing list