Uhm... Lucked... vuoi spiegare a parole semplici cosa vuoi fare? Una variabile è globale o locale... il problema è che locale è un termine usato, molto spesso, impropriamente: infatti una variabile può benissimo essere globale per una procedura e globale per un'altra. In questo caso, l'array è locale al corpo principale del programma e globale per la procedura.

PS: il codice di cso è perfettamente valido.

Ciao.