Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: palacio29 en 16 Mayo 2019, 03:14 am



Título: (Consulta) - Declaracion de punteros en Null
Publicado por: palacio29 en 16 Mayo 2019, 03:14 am
[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...


Título: Re: (Consulta) - Declaracion de punteros en Null
Publicado por: K-YreX en 16 Mayo 2019, 04:45 am
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.


Título: Re: (Consulta) - Declaracion de punteros en Null
Publicado por: MAFUS en 16 Mayo 2019, 09:29 am
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.