New answers tagged null
First some background ... The macros are NULL which expands to an implementation-defined null pointer constant; C11 §7.19 3 NULL typically is an integer constant 0 or (void*)0 or the like. It may have a different implementation or type - It could be ((int*) 0xDEADBEEF) as strange as that may be. NULL might be type int. It might be type void * or ...
Chapter and verse: 22.214.171.124 Pointers ... 3 An integer constant expression with the value 0, or such an expression cast to type void *, is called a null pointer constant. 66) If a null pointer constant is converted to a pointer type, the resulting pointer, called a null pointer, is guaranteed to compare unequal to a pointer to ...
In C, NULL is a macro that expands either to 0 or (void*)0 (or something that has a similar effect). In the first case, you can not differentiate between NULL and 0, because they are literally the same. In the second case, your code will cause a compile error, because you can't compare an integer variable with a pointer.
Top 50 recent answers are included