oh, das stimmt. malloc gibt einen void pointer zurück, den du casten musst. bcc meckert da nicht, aber streng genommen muss das so sein:
file1=(unsigned char*)malloc(size);

2ter fehler wahrscheins:
sprintf((char*)buf,"unsigned char picture[]={");

oder du deklarierst file1, file2 und buf als char* (also signed), müsste auch gehen.

gruesse

EDIT: nein, ich halte dich net für dumm, sry -.-