File: Stare vježbe/vjezbe11/70__slozene_strukture.c
/* 70__slozene_strukture.c ----- Clan strukture moze biti i neka druga struktura ili pointer na nju. */ #include <stdio.h> typedef struct { int x, y; } tocka; typedef struct { tocka gore_lijevo, dolje_desno; } pravokutnik; struct ABC { char a, b, c; int x, y, z; }; struct XYZ { struct ABC a1; int z1; struct ABC *p1; }; int main() { static struct ABC ttt; static struct ABC sss; /* inicijalizacija polja struktura XYZ */ static struct XYZ q[] = { { { 'h', 'i', 'j', 0, 1, 2 }, 1000, &ttt }, { { 'b', 'y', 'e', 10, 11, 12 }, 9000, &sss } }; pravokutnik prav={{0, 0}, {0, 0}}, *p_prav=&prav; prav.gore_lijevo.x=-100; p_prav->dolje_desno.y=200; printf ("Pravokutnik: gore_lijevo=(%d, %d), dolje_desno=(%d, %d)\n", prav.gore_lijevo.x, prav.gore_lijevo.y, prav.dolje_desno.x, prav.dolje_desno.y); /* krivo je napisati q.p1->a = 100; jer je q zapravo pokazivac! */ q[0].p1->a = 100; printf ("q[0].p1->a=%d\n", q [0]. p1->a ); (*q).p1->a = 50; /* moze i q->p1->a=50; */ printf ("q[0].p1->a=%d\n", q [0]. p1->a ); return 0; }
|