Purtroppo, non e' possibile darti una qualsiasi indicazione perche' il problema e' a run time e dipende dal valore che assumono coordx e coordy durante l'esecuzione (il loro valore dipende da quello di alcuni elementi di buf che non si sa quanto valgono ...).

Penso che tu stia compilando con devc++ perche' la linea

unsigned char mappa[coordx][coordy][4];

con coordx e coordy variabili, non sarebbe risultata corretta con altri compilatori.