Portál AbcLinuxu, 27. října 2025 02:00
Mám dvě pole (*a[10], *b[10]) ukazatelů, každé na jeden typ struktury (ta, tb). V jedné ze struktur mám ukazatel na ukazatel (**ubbb). Ten mi ukazuje na ukazatel do pole a[0]->ubbb=&b[0]. Jde mi o to jak se pak dostanu z struktury “a” skrz ten ukazatel ubbb až do obsahu struktury b ? Teda něco jako a[0]->ubbb->bbb ?
typedef struct
{
int bbb;
} tb;
typedef struct
{
tb **ubbb;
int aaa;
} ta;
ta *a[10];
tb *b[10];
int main ( void)
{
a[0]=malloc( sizeof (ta) );
a[0]->aaa=10;
b[0]=malloc( sizeof (tb) );
b[0]->bbb=10;
a[0]->ubbb=&b[0];
printf ("%d\n", a[0]->ubbb->bbb );
}
Řešení dotazu:
printf("%d\n", *(a[0]->ubbb)->bbb);
p.c: In function ‘main’: p.c:30: error: ‘tb’ has no member named ‘aaa’
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.