Menu
×
   ❮   
HTML CSS JAVASCRIPT SQL PYTHON JAVA PHP HOW TO W3.CSS C C++ C# BOOTSTRAP REACT MYSQL JQUERY EXCEL XML DJANGO NUMPY PANDAS NODEJS DSA TYPESCRIPT ANGULAR GIT POSTGRESQL MONGODB ASP AI R GO KOTLIN SASS VUE GEN AI SCIPY CYBERSECURITY DATA SCIENCE INTRO TO PROGRAMMING BASH RUST

C Tutorial

C HOME C Intro C Get Started C Syntax C Output C Comments C Variables C Data Types C Constants C Operators C Booleans C If...Else C Switch C While Loop C For Loop C Break/Continue C Arrays C Strings C User Input C Memory Address C Pointers

C Functions

C Functions C Function Parameters C Scope C Function Declaration C Recursion C Math Functions

C Files

C Create Files C Write To Files C Read Files

C Structures

C Structures C Structs & Pointers C Unions

C Enums

C Enums

C Memory

C Memory Management

C Errors

C Errors C Debugging C NULL C Error Handling C Input Validation

C More

C Date C Macros C Organize Code C Storage Classes

C Projects

C Projects

C Reference

C Reference C Keywords C <stdio.h> C <stdlib.h> C <string.h> C <math.h> C <ctype.h> C <time.h>

C Examples

C Examples C Real-Life Examples C Exercises C Quiz C Compiler C Syllabus C Study Plan C Certificate

C NULL


C NULL

NULL is a special value that represents a "null pointer" - a pointer that does not point to anything.

It helps you avoid using pointers that are empty or invalid. You can compare a pointer to NULL to check if it is safe to use.

Many C functions return NULL when something goes wrong. For example, fopen() returns NULL if a file cannot be opened, and malloc() returns NULL if memory allocation fails. We can check for this using an if statement, and print an error message if something goes wrong.

In this example, we try to open a file that does not exist. Since fopen() fails, it returns NULL and we print an error message:

Example

#include <stdio.h>

int main() {
  FILE *fptr = fopen("nothing.txt", "r");

  if (fptr == NULL) {
    printf("Could not open file.\n");
    return 1;
  }

  fclose(fptr);
  return 0;
}

Try it Yourself »

If you try to allocate too much memory, malloc() may fail and return NULL:

Example

#include <stdio.h>
#include <stdlib.h>

int main() {
  int *numbers = (int*) malloc(100000000000000 * sizeof(int));

  if (numbers == NULL) {
    printf("Memory allocation failed.\n");
    return 1;
  }

  printf("Memory allocation successful!\n");

  free(numbers);
  numbers = NULL;

  return 0;
}

Try it Yourself »


Summary

  • NULL represents a null (empty) pointer
  • It signals that a pointer is not pointing anywhere
  • You can compare a pointer to NULL to check if it's safe to use
  • Functions like malloc() and fopen() return NULL if they fail

Tip: Always check if a pointer is NULL before using it. This helps avoid crashes caused by accessing invalid memory.


×

Contact Sales

If you want to use W3Schools services as an educational institution, team or enterprise, send us an e-mail:
sales@w3schools.com

Report Error

If you want to report an error, or if you want to make a suggestion, send us an e-mail:
help@w3schools.com

W3Schools is optimized for learning and training. Examples might be simplified to improve reading and learning. Tutorials, references, and examples are constantly reviewed to avoid errors, but we cannot warrant full correctness of all content. While using W3Schools, you agree to have read and accepted our terms of use, cookie and privacy policy.

Copyright 1999-2025 by Refsnes Data. All Rights Reserved. W3Schools is Powered by W3.CSS.