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 ...