[SOLUCIONADO] Acceso a estructura Anidada

Iniciado por neox, Agosto 17, 2011, 10:00:57 PM

Tema anterior - Siguiente tema

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

Agosto 17, 2011, 10:00:57 PM Ultima modificación: Febrero 08, 2014, 05:07:45 PM por Expermicid
buenas--- a ver si alguien me responde algo sencillo... necesito saber la manera de acceder a algun miembro de una estructura anidada; les pongo el codigo:

Código: c
struct asistente{
int ced;
int carne;
char insti;
char nombre;
struct curso_asistido{
char ncurso;
char prof_curso;
int codcurso;

quiero saber como puedo accerder a los miembros de curso_asistido ..... gracias al que me pueda echar una mano

Agosto 18, 2011, 12:31:37 AM #1 Ultima modificación: Agosto 18, 2011, 12:34:44 AM por linkgl
A mí me enseñaron a usarlas así:

Defines las dos estructuras con sus datos/parámetros, despues a una estructura le defines la segunda estructura en una variable o puntero (como si estuviera anidada pero ya definida en la estructura), ejemplo:

Código: c
#include <stdio.h>
#include <stdlib.h>



struct curso_asistido{
   char ncurso;
   char prof_curso;
   int codcurso;
};
struct asistente{
   int ced;
   int carne;
   char insti;
   char nombre;
   struct curso_asistido link; //Aca anidamos la primera estructura para llamarla como link
};

int main()
{
struct asistente lenk;
lenk.link.codcurso=41;
printf("%d",lenk.link.codcurso);
getchar();
return 0;
}


De igual forma puedes probar con estructura1.estructura2.dato jeje más no fué como me enseñaron.

gracias por la respuesta linkgl!!

me puse a probar hasta que finalmente recorde una manera de hacerlo les muestro por si a alguien le sirve:

Código: c
typedef struct asistente{
int ced;
int carne;
char insti;
char nombre;
bool activo;
struct curso_asistido{
char ncurso;
char prof_curso;
int codcurso;
}x;
};


y para acceder a algun elemento de la estructura anidada sencillamente se pone:

variable.x.ncurso  ....... de la misma manera con cualquier otro miembro de la estructura!

saludos ;)

jaja ahh es verdad!, de igual forma si es necesario puedes incluso declararla como puntero o de ambas formas. :P