Se il valore e' minore di 65536 allora ti serve un unsigned short int e quindi due byte per valore ... 24 M di memoria allocati non sono tanti ...

A parte il DEV, che e' lo strumento e non e' importante (anche se non te lo consiglio), ti avevo chiesto cosa non sai fare ...

Devi lavorare in C++ o anche solo in C?

Sai allocare la memoria per l'array?

Sai aprire il file?

Hai scritto parte del codice o lo vuoi scritto interamente? Mi sembra che tu abbia avuto degli spunti per iniziare ...