Many C code freeing pointers calls:
if (p) free(p);
But why? I thought C standard say the free function doesn\'t do anything
free
If you rely on that free(0) is OKAY, and it's normal for your pointer to be null at this point, please say so in comment // may be NULL
// may be NULL
This may be merely self-explanatory code, saying yes I know, I also use p as a flag.