cosa significa "non funziona"?

cmq non credo che il c++ accetti una definizione dell'array con un i non dichiarato.. anzi se non ricordo male

int i; equivale a int i = 0;

quindi tu hai un array di 0 elementi da riempire.. ti andrà "out of range"