in

Puntero nulo en C – javatpoint

null pointer in c

Un puntero nulo es un puntero que no apunta a ninguna ubicación de memoria. Almacena la dirección base del segmento. El puntero nulo básicamente almacena el valor Nulo, mientras que void es el tipo de puntero.

Un puntero nulo es un valor reservado especial que se define en un stddef archivo de cabecera. Aquí, Null significa que el puntero se refiere al 0th ubicación de la memoria.

Si no tenemos ninguna dirección que deba asignarse al puntero, entonces se conoce como puntero nulo. Cuando se asigna un valor NULL al puntero, se considera como un Puntero nulo.

Aplicaciones del puntero nulo

A continuación se muestran las aplicaciones de un puntero nulo:

  • Se utiliza para inicializar una variable de puntero cuando el puntero no apunta a una dirección de memoria válida.
  • Se utiliza para realizar el manejo de errores con punteros antes de desreferenciar los punteros.
  • Se pasa como un argumento de función y regresa de una función cuando no queremos pasar la dirección de memoria real.

Ejemplos de puntero nulo

int * ptr = (int *) 0;
flotar * ptr = (flotar *) 0;
char * ptr = (char *) 0;
doble * ptr = (doble *) 0;
char * ptr = » 0″;
int * ptr = NULL;

Veamos las situaciones en las que necesitamos usar el puntero nulo.

  • Cuando no asignamos ninguna dirección de memoria a la variable de puntero.

En el código anterior, declaramos la variable de puntero * ptr, pero no contiene la dirección de ninguna variable. La desreferenciación de la variable puntero no inicializada mostrará el error en tiempo de compilación ya que no apunta a ninguna variable. Según el concepto de memoria de pila, las variables locales de una función se almacenan en la pila y, si la variable no contiene ningún valor, muestra el valor basura. El programa anterior muestra algunos resultados impredecibles y hace que el programa se bloquee. Por lo tanto, podemos decir que mantener un puntero sin inicializar en un programa puede causar graves daños a la computadora.

¿Cómo evitar la situación anterior?

Podemos evitar la situación anterior utilizando el puntero Null. Un puntero nulo es un puntero que apunta al 0th ubicación de la memoria, que es una memoria reservada y no se puede desreferenciar.

En el código anterior, creamos un puntero * ptr y asigna un NULO value al puntero, lo que significa que no apunta a ninguna variable. Después de crear una variable de puntero, agregamos la condición en la que verificamos si el valor de un puntero es nulo o no.

  • Cuando usamos la función malloc ().

En el código anterior, usamos la función de biblioteca, es decir, malloc (). Como sabemos, esa función malloc () asigna la memoria; si la función malloc () no puede asignar la memoria, entonces devuelve el NULO puntero. Por lo tanto, es necesario agregar la condición que verificará si el valor de un puntero es nulo o no, si el valor de un puntero no es nulo significa que el la memoria está asignada.

Puntero nulo en C

Nota: Siempre es una buena práctica asignar un valor Nulo al puntero cuando no conocemos la dirección exacta de la memoria.


Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Cómo crear un plegable

hive

Tutorial de colmena