Espacios de nombres
Variantes
Acciones

NULL

De cppreference.com
< c‎ | types
Definido en la cabecera <stddef.h>
Definido en la cabecera <string.h>
Definido en la cabecera <wchar.h>
Definido en la cabecera <time.h>
Definido en la cabecera <locale.h>
Definido en la cabecera <stdio.h>
Definido en la cabecera <stdlib.h>
#define NULL /*definido-en-implementacion*/

La macro NULL es una constante de puntero nulo definida por la implementación, que puede ser:

Una constante de puntero nula puede ser convertida a cualquier tipo de puntero; tal conversión resulta en el valor de puntero nulo de ese tipo.

[editar] Posible implementación

// C++ compatible:
#define NULL 0
// C++ incompatible:
#define NULL (10*2 - 20)
#define NULL ((void*)0)

[editar] Ejemplo

#include <stdlib.h>
#include <stdio.h>
int main(void)
{    
    // cualquier tipo de puntero puede ser cambiado a NULL
    int* p = NULL;
    struct S *s = NULL;
    void(*f)(int, double) = NULL;
 
    // muchas funciones de retorno de puntero utilizan punteros nulos para indicar errores
    char *ptr = malloc(10);
    if (ptr == NULL) printf("Fuera de memoria");
    free(ptr);
}


[editar] Véase también