in reply to Re^2: Check Variables for NULL
in thread Check Variables for NULL

Check the C standard. It has a NULL. How it's implemented is implementation defined, which means it could be anything. Section 7.1.6 of the 1990 standard (yes, there's a 1999 standard - I don't have a copy of that) includes the text:

The macros are

which expands to an implementation-defined null pointer constant
You're confusing C with C++ which defines NULL to be equivalent to the integer constant 0. Normally in C, the define is actually (void*)0.

Replies are listed 'Best First'.
Re^4: Check Variables for NULL
by GrandFather (Saint) on Feb 07, 2007 at 21:40 UTC

    Umm, no, actually I was thinking of K&R C. In "The C Programming Language (Second edition)" (I haven't the first handy) it says:

    The symbolic constant NULL is often used in place of zero, as a mnemonic to indicate more clearly that this is a special value for a pointer.

    It was variations on (void*)0 that I was alluding to as being a cause of grief in some rare cases (none of which I can think of at the moment, and probably all in a C++ context in any case).

    Actually NULL is not defined by C++ either, athough in "The C++ Programming Language (Third Edition)" Stroustrup comments:

    Because of C++'s tighter type checking, the use of plain 0, rather than any suggested NULL macro, leads to fewer problems.

    then goes on to suggest:

    If you feel you must define NULL, use: const int NULL = 0;

    None of which is relevant to very much, except to help highlight how little of the what people think of as C is in fact part of the C language.


    DWIM is Perl's answer to Gödel