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
Chiamante: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; }
codice:char *tav; disegna(mosaico,tav); stampa(tav,o);

. Grazie dell'aiuto
Rispondi quotando