What's the point of malloc(0)?

jldupont picture jldupont · Jan 7, 2010 · Viewed 68.7k times · Source

I just saw this code:

artist = (char *) malloc(0);

...and I was wondering why would one do this?

Answer

Reed Copsey picture Reed Copsey · Jan 7, 2010

According to the specifications, malloc(0) will return either "a null pointer or a unique pointer that can be successfully passed to free()".

This basically lets you allocate nothing, but still pass the "artist" variable to a call to free() without worry. For practical purposes, it's pretty much the same as doing:

artist = NULL;