typedef struct ponto { int x, y; } Ponto; typedef struct circulo { Ponto p1; int raio; } Circulo; void imprimePonto(Ponto p) { printf("\nx=%d y=%d",p.x, p.y); } void imprimeCirculo(Circulo c) { printf("\nCirculo: x=%d y=%d raio=%d", c.p1.x, c.p1.y, c.raio); } main() { Ponto p2; p2.x =2; p2.y =4; Circulo c; c.p1.x=5; c.p1.y=10; c.raio=8; Circulo c2; c2.p1.x=50; c2.p1.y=100; c2.raio=80; Circulo *c3; //c3 = &c2; // aponta para uma estrutura já existente // ou então aloca um novo espaço em memória: c3 = (Circulo *) malloc(sizeof(Circulo)); c3->p1.x = 2; c3->p1.y = 4; c3->raio = 6; imprimeCirculo(*c3); // imprimePonto(p2); // imprimeCirculo(c); // imprimeCirculo(c2); }