Ponteiros Nulos
Um valor de ponteiro pode ser nulo, o que significa que ele não aponta para nenhum objeto. A forma mais limpa de obter um ponteiro nulo é escrevendo NULL, uma macro padrão definida em <stddef.h>. Também é possível fazer isso convertendo o valor 0 para o tipo de ponteiro desejado, como em:
(char *) 0(O operador de cast realiza a conversão explícita de tipo; veja .)
Você pode armazenar um ponteiro nulo em qualquer lvalue cujo tipo de dado seja um tipo de ponteiro:
char *foo;
foo = NULL;Essas duas linhas, se forem consecutivas, podem ser combinadas em uma declaração com inicializador:
char *foo = NULL;Também é possível fazer o cast explícito de NULL para o tipo de ponteiro específico desejado — isso não faz diferença:
char *foo;
foo = (char *) NULL;Para testar se um ponteiro é nulo, compare-o com zero ou com NULL, como no exemplo abaixo:
if (p != NULL)
/* p não é nulo. */
operate(p);Como testar se um ponteiro não é nulo é algo básico e frequente, todos, exceto iniciantes em C, entenderão a forma abreviada sem != NULL:
if (p)
/* p não é nulo. */
operate(p);Atualizado
Isto foi útil?