Dimenticavo:
in questo modo size contiene la posizione corrente nel file.codice:size = file.tellg();
Quindi se sei all'inizio del file vale zero se sei alla fine è pari
alla lunghezza del file (o un valore intermadio se ti trovi in
altra posizione).
Quindi con
richiedi una memoria pari alla posizione in cui ti trovicodice:memblock = new char [size];
sul file (es: se sei sul secondo byte del file richiedi due byte).
E' proprio questo che volevi fare?