void bolha_gen (int n, void* v, int tam, int(*cmp)(void*,void*)) { puts("Bolha"); //Circulo* c; int i, j; void* p1; void* p2; for (i=n-1; i>0; i--) { int fez_troca = 0; for (j=0; j<i; j++) { p1 = acessa(v,j,tam); p2 = acessa(v,j+1,tam); if (cmp(p1,p2)) { troca(p1,p2,tam); fez_troca = 1; } } /*if (tam == sizeof(Circulo)){ c = (Circulo*) p1; printf("Centro do circulo%-2i = \t(%.2f,%.2f)\tRaio = %.2f\tCor : R = %3i, G = %3i, B = %3i\n",n-i,c[n-i].centro.x,c[i].centro.y,c[i].raio,c[i].cor.r,c[i].cor.g,c[i].cor.b); }*/ if (fez_troca == 0) /* nao houve troca */ return; } }
int main(int argc, char *argv[]){ int l, c, linha, coluna; float y; Matriz* x; scanf("%d", &linha); scanf("%d", &coluna); x = cria(linha, coluna); l = linhas(x); c = colunas(x); printf("\n%d\n", l); printf("\n%d\n", c); //y = acessa(x, linha, coluna); //printf("\n%f\n", y); //printa 0 libera(x); //libera cria que é x //y = acessa(x, linha, coluna); //printf("\n%f\n", y); //printa o endereço de y atribui(x, linha, coluna, 10); y = acessa(x, linha, coluna); //Neste y = acessa vai ser conferido se realmente o 10 foi atribuido à matriz printf("\n%.2f\n", y); //printa o endereço de y depois de executar atribui. Tem que printar 10 return 0; }