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
NULLrepresents a null (empty) pointer- It signals that a pointer is not pointing anywhere
- You can compare a pointer to
NULLto check if it's safe to use - Functions like
malloc()andfopen()returnNULLif they fail
Tip: Always check if a pointer is NULL before using it. This helps avoid crashes caused by accessing invalid memory.