Copyright © tutorialspoint.com

# C++ NULL Pointers

It is always a good practice to assign the pointer NULL to a pointer variable in case you do not have exact address to be assigned. This is done at the time of variable declaration. A pointer that is assigned NULL is called a null pointer.

The NULL pointer is a constant with a value of zero defined in several standard libraries, including iostream. Consider the following program:

    #include <iostream>

    using namespace std;

    int main ()
    {
       int  *ptr = NULL;

       cout << "The value of ptr is " << ptr ;

       return 0;
    }

When the above code is compiled and executed, it produces following result:

    The value of ptr is 0

On most of the operating systems, programs are not permitted to access memory at address 0 because that memory is reserved by the operating system. However, the memory address 0 has special significance; it signals that the pointer is not intended to point to an accessible memory location. But by convention, if a pointer contains the null (zero) value, it is assumed to point to nothing.

To check for a null pointer you can use an if statement as follows:

    if(ptr)     // succeeds if p is not null
    if(!ptr)    // succeeds if p is null

Thus, if all unused pointers are given the null value and you avoid the use of a null pointer, you can avoid the accidental misuse of an uninitialized pointer. Many times uninitialized variables holds some junk values and it becomes difficult to debug the program.

Copyright © tutorialspoint.com