Portál AbcLinuxu, 12. května 2025 23:43
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.