Skip to content

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';

→ Here's my latest YouTube video

→ Get my C Handbook

→ 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

Bootcamp 2025

Join the waiting list