Хотя это я погорячился. Приведу еще раз:
size_t fread(
void *buffer,
size_t size,
size_t count,
FILE *stream
);
fread читает size*count байт и возвращает count (если все прошло нормально).
Тебе достаточно сделать вызов fread(buf, 1024, 64, f);
Остается как-то выделить 64Кб памяти...