Wait!
Ovviamente vuoi leggere tutto il file, ma ciò non significa che lo devi caricare tutto in memoria (e ciò intendevo), proprio per ciò che hai obiettato tu stesso:

Originariamente inviato da acweb-2004
ci possono essere problemi di caricamento dell'array staesso se il file è di grandi dimensioni?????
e quindi le alternative percorribili sono unicamente i comandi di tipo fgets.
Se il file non è enorme allora certamente utilizza il comando file, che è ben più user-friendly.

Per la questione del !feof, ti ho già dato risposta...