Premetto che uso gcc da ubuntu e che non ci sono errori di compilazione ne di esecuzione.
fatto sta che quando invoco la stampa mi butta fuori caratteri incomprensibili e anche in quantità sbagliata.
Qui c'è tutto il codice, non capisco cosa non va . Grazie dell'aiuto
codice:
void completa(tree RADICE, char * tavola, int ord){
if (!(Is_Empty(RADICE))) {
Valore(RADICE);
int cx,cy;
if(minY<0) cy = abs(minY)-ret[1];
else cy = abs(minY)+ret[1];
if(minX<0) cx = abs(minX)-ret[0];
else cx = abs(minX)+ret[0];
*(tavola+cx*ord+cy)='X';
completa(Nord(RADICE), tavola, ord);
completa(Ovest(RADICE), tavola, ord);
completa(Est(RADICE), tavola, ord);
completa(Sud(RADICE), tavola, ord);
}
return;
}
void disegna(tree RADICE, char *tavola){
int i,j;
int o = ordine();
tavola = (char *) calloc (o*o, sizeof(char));
for(i=0;i<o;i++)
for(j=0;j<o;j++)
*(tavola + i*o + j) = ' ';
completa(RADICE, tavola, o);
*(tavola+abs(minX)*o+abs(minY))='O';
return;
}
void stampa(char *tavola, int o){
int i,j;
for(i=0;i<o;i++)
for(j=0;j<o;j++)
printf("%c",(*(tavola + i*o + j)));
printf("\n");
return;
}
Chiamante:
codice:
char *tav;
disegna(mosaico,tav);
stampa(tav,o);