How to use NULL in C
A brief guide at null pointers in C
Several programming languages make use of the concept of null.
Go has nil
, JavaScript has null
, Python has None
, and so on.
C has NULL
.
NULL however is used differently from other languages. In C, NULL is limited to identifying a null pointer.
When we initialize a pointer, we might not always know what it points to. That’s when it is useful:
int * p_some_variable = NULL;
NULL
is not available by default: you need to include stdio.h
to use it (or if you prefer, stddef.h
:
#include <stdio.h>
int main(void) {
int * p_some_variable = NULL;
}
Otherwise the C compiler will give you an error:
hello.c:3:26: error: use of undeclared identifier
'NULL'
int * p_some_variable = NULL;
^
1 error generated.
You can check if a pointer is a null pointer by comparing it to NULL
:
#include <stdio.h>
int main(void) {
int * p_some_variable = NULL;
if (p_some_variable == NULL) {
printf("equal");
}
}
In practice, NULL
is a constant equivalent to 0
, or "\0"
.
This is why you can set a string to NULL using:
char *a_string = '\0';
→ I wrote 17 books to help you become a better developer, download them all at $0 cost by joining my newsletter
→ JOIN MY CODING BOOTCAMP, an amazing cohort course that will be a huge step up in your coding career - covering React, Next.js - next edition February 2025