In the "old time" NULL is defined as:
#define NULL ((char *)0)
therefore, with *NULL you get a char whose size is 1. (You can still see such a definition hidden in the headers as a return case, now, starting with C90, char is replaced with void ).
I don't think this is valid code (NULL indirectness, but also just size).
Some null compilers have 0l or just 0 , which will give an error in your case.
source share