#include typedef struct pontoColorido { int x; int y; int cor; } PontoColorido; typedef struct circuloColorido { PontoColorido *p; int raio; } CirculoColorido; typedef struct ponto { int x; int y; } Ponto; typedef struct circulo { Ponto p; int raio; } Circulo; void preencheVetorPtrPtr(Circulo **ptr, int n) { int i; for (i=0; ip.x = 10*i; ptr[i]->p.y = 20*i; ptr[i]->raio = 10; } } void mostraVetorPtrPtr(Circulo **ptr, int n) { int i; for (i=0; ip.x, ptr[i]->p.y, ptr[i]->raio); } void preencheVetor(Circulo *ptr, int n) { int i; for (i=0; ip->x); printf("\nY=%d",cc->p->y); printf("\nCor=%d",cc->p->cor); printf("\nRaio=%d\n",cc->raio); } CirculoColorido * criaCC(int x, int y, int cor, int raio) { CirculoColorido *cc = (CirculoColorido *) malloc(sizeof(CirculoColorido)); cc->p = (PontoColorido *) malloc(sizeof(PontoColorido)); cc->p->x = x; cc->p->y = y; cc->p->cor=cor; cc->raio = raio; return cc; } int main (void) { Ponto p, p2, *p3, *p4; int i; // vetor de circulos Circulo vetorCirc[10]; // vetorCirc[0].p.x=10; // vetorCirc[0].p.y=20; // vetorCirc[0].raio=50; // vetorCirc[9].p.x=20; //... preencheVetor(vetorCirc, 10); //mostraVetor(vetorCirc, 10); // vetor de ponteiros para circulos Circulo *vetorPtrCirc[10]; for (i=0; i<10; i++) vetorPtrCirc[i] = (Circulo *) malloc(sizeof(Circulo)); preencheVetorPtrPtr(vetorPtrCirc, 10); //mostraVetorPtrPtr(vetorPtrCirc, 10); // Ponteiro de ponteiro Circulo **ptrptrCirc; ptrptrCirc = (Circulo **) malloc(10*sizeof(Circulo *)); for (i=0; i<10; i++) ptrptrCirc[i] = (Circulo *) malloc(sizeof(Circulo)); preencheVetorPtrPtr(vetorPtrCirc, 10); //mostraVetorPtrPtr(vetorPtrCirc, 10); p.x = 2; p2.x = 4; p3 = &p; p3->x = 3; p4 = (Ponto *) malloc(sizeof(Ponto)); p4->x = 8; p4->y = 10; Circulo c, c2, *c3, *c4; c.p.x = 20; c.p.y = 50; c.raio = 40; c2.p.x = 2; c2.p.y = 5; c2.raio = 4; c3 = &c; c3->p.x = 40; // c3->p.x = c3->p.x * 2; c3->p.y = 100; c3->raio = 80; c4 = (Circulo *) malloc(sizeof(Circulo)); c4->p.x = 4; c4->p.y = 10; c4->raio = 8; CirculoColorido cc1; cc1.p = (PontoColorido *) malloc(sizeof(PontoColorido)); cc1.p->x = 10; cc1.p->y = 20; cc1.p->cor=5; cc1.raio = 30; CirculoColorido cc2; cc2.p = (PontoColorido *) malloc(sizeof(PontoColorido)); cc2.p->x = 10; cc2.p->y = 20; cc2.p->cor=5; cc2.raio = 30; imprimePC(&cc1); CirculoColorido *cc = criaCC(1,2,3,4); imprimePC(cc); CirculoColorido *cc3; cc3 = &cc1; cc3->p->x = 10; cc3->p->y = 20; cc3->raio = 30; CirculoColorido *cc4; cc4 = (CirculoColorido *) malloc(sizeof(CirculoColorido)); cc4->p = (PontoColorido *) malloc(sizeof(PontoColorido)); cc4->p->x = 10; cc4->p->y = 20; cc4->p->cor = 2; cc4->raio = 30; system("pause"); return 0; }