Forse in fase di run la malloc non riesce a trovare 1600 locazioni consecutive per contenere i tuoi float ...
quando si usa la malloc è normale che i problemi si abbiano in run time

Cmq questo è un problema che mi afflige da parecchio tempo , perche ci vorrebbe qualche metodo per richiedere al S.O. più memoria ,ad esempio un segmento più grande ...

spero che esista una soluzione ...