malloc (0)

Maxime Henrion mux at freebsd.org
Sat Feb 21 09:06:35 PST 2004


Petri Helenius wrote:
> 
> I?m asking the net list because I came across this when browsing through 
> the networking / resolver code.
> 
> The question is if the code should check for zero value before calling 
> malloc or is malloc(0) legal if the pointer is never used?
> 
> I came across this when using dmalloc library and it started complaining 
> about zero sized allocations from get_addrselectpolicy.

In C99, malloc(0) is legal.  From n869.txt :

%%
If the size of the space requested is zero, the behavior is
implementation-defined: either a  null pointer  is returned,
or the behavior is as if the size were some nonzero value,
except that the returned  pointer  shall not  be  used  to
access an object.
%%

As a side note, free(NULL) is also legal in C99.

Cheers,
Maxime


More information about the freebsd-net mailing list