Dipende dal tipo di file che tratti ... se gestisci dei file da 500 M allora puoi usare anche 1 M di buffer ... vedi un po' tu ... al "limite", se il file non e' molto grande, puoi allocare esattamente lo spazio necessario per leggerlo tutto con una sola fread ...

Fai attenzione pero', perche' nel codice che hai mostrato, tratti soltanto blocchi da 64000 byte, mentre devi considerare che l'ultimo blocco letto e' molto probabile che sia di lunghezza minore ... Ovvero, per un file lungo 150000 byte, leggerai 3 blocchi da

64000 byte
64000 byte
22000 byte