Ponteiros nulos C ++
É sempre uma boa prática atribuir o ponteiro NULL a uma variável de ponteiro, caso você não tenha o endereço exato a ser atribuído. Isso é feito no momento da declaração da variável. Um ponteiro que é atribuído NULL é chamado denull ponteiro.
O ponteiro NULL é uma constante com valor zero definido em várias bibliotecas padrão, incluindo iostream. Considere o seguinte programa -
#include <iostream>
using namespace std;
int main () {
int *ptr = NULL;
cout << "The value of ptr is " << ptr ;
return 0;
}
Quando o código acima é compilado e executado, ele produz o seguinte resultado -
The value of ptr is 0
Na maioria dos sistemas operacionais, os programas não têm permissão para acessar a memória no endereço 0 porque essa memória é reservada pelo sistema operacional. No entanto, o endereço de memória 0 tem um significado especial; ele sinaliza que o ponteiro não se destina a apontar para um local de memória acessível. Mas, por convenção, se um ponteiro contém o valor nulo (zero), presume-se que não aponte para nada.
Para verificar se há um ponteiro nulo, você pode usar uma instrução if da seguinte maneira -
if(ptr) // succeeds if p is not null
if(!ptr) // succeeds if p is null
Portanto, se todos os ponteiros não usados receberem o valor nulo e você evitar o uso de um ponteiro nulo, poderá evitar o uso incorreto acidental de um ponteiro não inicializado. Muitas vezes, as variáveis não inicializadas contêm alguns valores inúteis e torna-se difícil depurar o programa.