Il fatto di allocarli in quel modo è consentito solo con compilatori C99.
Non lo puoi fare con tutti gli altri e non è raccomandabile.
Dovresti utilizzare l'allocazione dinamica usando dei puntatori e le funzioni apposite (malloc, calloc).
Alle funzioni passerai i puntatori dopo avere allocato nel main lo spazio necessario ...