In This Article
What is Null Pointer?
With reference to the computer memory, the term ‘null pointer’ signifies a specific type of command that is used to direct the operating system or the software to a vacant location in it.
Technically, a null pointer means the command that essentially indicates the end of a processing task or a memory search event.
However, with reference to programming, it denotes a pointer that does not point to any function or object.
- A null pointer does not point to any particular location, function, or object in the computer memory.
- This specific pointer is simply a reserved value and not a type of valid pointer.
- A null pointer may also signify a specific command that signifies the end of an event or a process.
- There are two types of integer constant expressions evaluating to zero used in a null pointer.
- A null pointer is used in different situations following a specific set of rules.
Understanding Null Pointer
A null pointer is a special reserved value. It is usually demarcated in the stddef header file.
It does not point to any specific location. To be more precise, the null pointer refers to the 0th location in the memory of a computer.
However, the pointer typically directs the software or the operating system to an empty space on the memory.
In simple terms, when an address is not assigned to a pointer, then it is usually referred to as a null pointer. However, it is usually done by assigning a 0 or a NULL value to the pointer.
A null pointer is typically used in the following situations:
- To initialize the pointer variable when it does not point towards a valid address in the memory of the computer
- To perform error handling prior to dereferencing the pointers
- To pass it as a function argument
- To specify the end of a list of indefinite length
- To show errors in return of a pointer from a particular function when passing the actual memory address is not desired
- While using the malloc() function
Null pointer constants
In order to ensure that the pointer does not point towards any valid function or an object stored in the memory of the computer, a null pointer constant is used.
A null pointer constant typically refers to a specific type of integer constant expression which estimates to zero.
This means that a null pointer constant may eventually evaluate to 0, 0L or any other specific type of expression that may be cast to 0 (void *).
There are typically two such null pointer constant expressions used to specify the values, such as:
- 0 – This is the most commonly used integer constant expression.
- NULL – This is a much cleaner null pointer constant since it specifies the basic intention of using a constant for the pointer.
A few examples of null pointers are:
- int *ptr=(int *)0;
- int *ptr=NULL;
- char *ptr=(char *)0;
- char *ptr=’\0′;
- float *ptr=(float *)0;
- double *ptr=(double *)0;
The set of rules to follow for creating a null pointer are as follows:
- To start with, affirm a pointer, say p, of the integer datatype.
- Initialize *p= NULL.
- Print “The value of the pointer is”.
- Print the value of the pointer p.
This ends the process.
Null Pointer Vs Void Pointer
- A null pointer typically does not point to any location in the memory. On the other hand, a void pointer can point to any location of any type of data.
- A null pointer does not contain any address. On the other hand, the general-purpose void pointer can store the generic locations of a variable of any type of data.
- The null pointer is created with the null keyword along and the assignment operator. However, in comparison, the void pointer is created by using the void keyword.
- A null pointer essentially needs to have a fixed data type. On the other hand, the void pointer does not need to have any fixed data type.
- A null pointer is much faster in comparison to the void pointer.
- The null pointer remains null until any address for the variable is assigned. On the other hand, the void pointer remains void until it is assigned with a data type with a fixed address.
- Declaring but not initializing a null pointer is considered to be a bad programming approach, but in comparison, using a void pointer has got nothing to do with respect to programming as such.
- A null pointer does not help a programmer in any specific ways, but in comparison, a void pointer adds to the flexibility for the programmer.
- While the null pointer has got nothing to do with type casting, keeping a void pointer prevents type casting a variable of a pointer repeatedly.
- A null pointer is simply a reserve value. In comparison, a void pointer is essentially a type of valid pointer.
- A null pointer is suitable for and supports all data types. On the other hand, the void pointers only support the void data type of size 1.
So now you know that a null pointer points to nothing. However, this is not the same as the uninitialized pointer and therefore should not be confused with it.
A null pointer will never point to any valid object or function but an uninitialized pointer may, and therefore it can be both valid and null pointer at different times.