C/Visual C - paso por referencia en listas

 
Vista:

paso por referencia en listas

Publicado por Guido (1 intervención) el 07/12/2005 12:06:38
Estoy un poco liado con las estructuras dinamicas y no entiendo el paso por referencia de punteros a estructuras a la hora de insertar nodos

por ejemplo las listas:

1º) se declara un puntero a estructura: struct nodo *lista;

2º) se llama a la funcion pasandole la direccion y el valor : insertar (&lista,20);

3º) el prototipo de la funcion contiene un puntero a puntero que apunta a estrcutura nodo)
void insertar(struct nodo **lista, int valor)

¿porque el prototipo es un puntero a puntero que apunta a struct?

Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:paso por referencia en listas

Publicado por Jesus Oliver (166 intervenciones) el 07/12/2005 15:02:20
Dificil de explicar, pero básicamente es...porque lo es. a ver si con un esquemita te lo aclaro :

(main)
---------- ---------- ----------
| Lista |------->| nodo1|-------->|nodo2|
---------- ---------- ---------
^
|
|
(insertar)
|
-----------
| Lista |
----------- Como puedes ver, es un puntero a un puntero.
El pasar mediante referencia (&) solo le dice donde esta alojado ese puntero, no el contenido (la direccion a donde apunta).
Sobre el mismo ejemplo :
Direccion de memoria |Descripcion| Contenido

0x0001|Puntero Lista| 0x0002
0x0002|Nodo1|(valor de nodo1)
.....
0x002A|Lista de Insertar| 0x0001

No se si me ha quedado bien, o claro, en caso de duda, contacte con un profesor :-)

Espero que le sea de ayuda.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar