New answers tagged

2

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 ...


1

Chapter and verse: 6.3.2.3 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 ...


11

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