(Consulta) - Declaracion de punteros en Null

Iniciado por palacio29, 16 Mayo 2019, 03:14 AM

0 Miembros y 1 Visitante están viendo este tema.

palacio29

[LENGUAJE C] Tengo la siguiente sentencia y nose como interpretarla.

Char * Arreglo = NULL;

Que significa esto?.
Que el contenido de este arreglo es vacio  y como es la direccion de memoria de esa variable?.Porque hago un %p y salen todos ceros...

K-YreX

Cuando creas un puntero, ese puntero guarda una dirección de memoria. Si el puntero no lo inicializas al crearlo, este apuntará a una dirección de memoria cualquiera que puedes ver pero no puedes usar porque no sabes a qué está apuntando. Se puede hacer que apunte a NULL para tener una referencia de que ese puntero no está en uso en ese momento.

Y ten cuidado con lo del arreglo... Un puntero no es un arreglo. Un puntero apunta al comienzo de un arreglo en el caso de que hayas reservado memoria o que sea un array estático, que no es el caso.
Código (cpp) [Seleccionar]

cout << "Todos tenemos un defecto, un error en nuestro código" << endl;

MAFUS

NULL es 0, cuando C ve que un puntero apunta a la posición 0 o NULL sabe que no está apuntando a nada.

Esto le sirve al programador para saber si el puntero está inicializado o no, por ejemplo cuando haces uso de fopen está devuelve un puntero. Este puntero puede ser a una estructura FILE correctamente inicializada o a NULL indicando que no se pudo abrir el archivo. O strstr devolverá NULL si una cadena ni está contenida en la otra.