Ver Mensaje Individual
  #4 (permalink)  
Antiguo 27/05/2015, 06:07
lmmontero
 
Fecha de Ingreso: mayo-2015
Mensajes: 15
Antigüedad: 8 años, 10 meses
Puntos: 0
Respuesta: Problema con estructuras y punteros en C

Hola otra vez..

En el caso de utilizar estructuras anidadas y punteros, ¿cómo habría que pasar la variable por parámetro?

Siguiendo con el ejemplo de antes, suponemos que tenemos:

Código C:
Ver original
  1. typedef struct             
  2. {
  3.     char *dni;
  4.     int edad;
  5. } ninio;                   
  6.  
  7. typedef struct             
  8. {
  9.     char *nombre;
  10.     char *apellido;
  11.     int edad;          
  12.     ninio *hijos;
  13. } persona; 
  14.  
  15. persona empleado;

En este caso, a la hora de llamar a una función pasando como parametro el campo nombre de la estructura persona, lo haría tal y como me has explicado antes:

Código C:
Ver original
  1. void func(char **dato)
  2. {
  3.    ...
  4. }
  5.  
  6. int main ()
  7. {
  8.    persona *empleado;
  9.    func(&(empleado.nombre))
  10. }

Pero en el caso de llamar a la función pasándole como parámetro el campo dni de la estructura ninio (que a su vez está definida dentro de la estructura persona), ¿cómo tendría que hacerlo? He probado a hacerlo así pero me aparece un error en tiempo de ejecución:

Código C:
Ver original
  1. int main ()
  2. {
  3.    persona *empleado;
  4.    func(&(empleado.nombre.dni))
  5.  
  6. }

Gracias de nuevo!