Ver Mensaje Individual
  #13 (permalink)  
Antiguo 30/07/2010, 09:19
CalgaryCorpus
 
Fecha de Ingreso: junio-2008
Ubicación: Seattle, USA
Mensajes: 733
Antigüedad: 15 años, 10 meses
Puntos: 61
Respuesta: pasar una estructura por referencia

Espero que perdones la pedanteria: No existe pasar "una estructura entera" por referencia. La gracia del paso por referencia es que no pasas estructuras "enteras".

El "paso por referencia", o el truco de usar punteros y direcciones de memoria es similar a tener anotado en un papel la direccion de una casa y tener como mision pintar la puerta principal de esa casa.

No obtienes nada pintando el papel, o haciendole modificaciones a ese papel (osea al puntero). Solo lograras cambios si te diriges a la casa ( usando el operador * o el operador -> ).

Pero es muy facil transportar papeles en los bolsillos. Las funciones reciben papeles (las direcciones de memoria, anotadas en los punteros), y su mision es llegar a esas direcciones y lograr cambios ahi.

Es dificil transportar casas de verdad en los bolsillos. Cuando pasas estructuras por valor, eso es lo que intentas hacer, pero las funciones en vez de recibir una casa completa, hacen una copia personal para modificar. Si pintas la puerta de la casa copiada, no le haras nada a la casa original.