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?