Punteros nulos de C ++
Siempre es una buena práctica asignar el puntero NULL a una variable de puntero en caso de que no tenga una dirección exacta para asignar. Esto se hace en el momento de la declaración de la variable. Un puntero al que se le asigna NULL se llamanull puntero.
El puntero NULL es una constante con un valor de cero definido en varias bibliotecas estándar, incluido iostream. Considere el siguiente programa:
#include <iostream>
using namespace std;
int main () {
int *ptr = NULL;
cout << "The value of ptr is " << ptr ;
return 0;
}
Cuando se compila y ejecuta el código anterior, produce el siguiente resultado:
The value of ptr is 0
En la mayoría de los sistemas operativos, los programas no pueden acceder a la memoria en la dirección 0 porque esa memoria está reservada por el sistema operativo. Sin embargo, la dirección de memoria 0 tiene un significado especial; indica que el puntero no está destinado a apuntar a una ubicación de memoria accesible. Pero por convención, si un puntero contiene el valor nulo (cero), se supone que no apunta a nada.
Para verificar si hay un puntero nulo, puede usar una declaración if de la siguiente manera:
if(ptr) // succeeds if p is not null
if(!ptr) // succeeds if p is null
Por lo tanto, si todos los punteros no utilizados reciben el valor nulo y evita el uso de un puntero nulo, puede evitar el mal uso accidental de un puntero no inicializado. Muchas veces, las variables no inicializadas contienen algunos valores basura y resulta difícil depurar el programa.