NULL

Section: Misc. Reference Manual Pages (3const)
Updated: 2023-02-05
Index Return to Main Contents
 

NAME

NULL - null pointer constant  

LIBRARY

Standard C library (libc)  

SYNOPSIS

#include <stddef.h>

#define NULL  ((void *) 0)
 

DESCRIPTION

NULL represents a null pointer constant, that is, a pointer that does not point to anything.  

CONFORMING TO

C99 and later; POSIX.1-2001 and later.  

NOTES

The following headers also provide NULL: <locale.h>, <stdio.h>, <stdlib.h>, <string.h>, <time.h>, <unistd.h>, and <wchar.h>.  

CAVEATS

It is undefined behavior to dereference a null pointer, and that usually causes a segmentation fault in practice.

It is also undefined behavior to perform pointer arithmetic on it.

NULL - NULL is undefined behavior, according to ISO C, but is defined to be 0 in C++.

To avoid confusing human readers of the code, do not compare pointer variables to 0, and do not assign 0 to them. Instead, always use NULL.

NULL shouldn't be confused with NUL, which is an ascii(7) character, represented in C as '\0'.  

BUGS

When it is necessary to set a pointer variable to a null pointer, it is not enough to use memset(3) to zero the pointer (this is usually done when zeroing a struct that contains pointers), since ISO C and POSIX don't guarantee that a bit pattern of all 0s represent a null pointer. See the EXAMPLES section in getaddrinfo(3) for an example program that does this correctly.  

SEE ALSO

void(3type)


 

Index

NAME
LIBRARY
SYNOPSIS
DESCRIPTION
CONFORMING TO
NOTES
CAVEATS
BUGS
SEE ALSO

This document was created by man2html, using the manual pages.
Time: 18:09:15 GMT, May 18, 2024