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;
}
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;
}
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()
andfopen()
returnNULL
if they fail
Tip: Always check if a pointer is NULL
before using it. This helps avoid crashes caused by accessing invalid memory.