Jeśli w strukturze miałaby być wyłącznie tablica to nie ma sensu jej używać.
Wystarczy bezpośrednio użyć tablic, coś w ten deseń.
#include <iostream>
typedef int map_t[3][3];
map_t map1 = {
{0,1,2},
{3,4,5},
{6,7,8}
};
map_t map2 = {
{0,1,2},
{0,1,2},
{0,1,2}
};
map_t map3 = {
{0,1,2},
{0,1,2},
{0,1,2}
};
map_t &get_map(int index)
{
map_t *maps[] = {&map1, &map2, &map3};
return *maps[index];
}
int main()
{
int current_map_index = 0;
map_t ¤t_map = get_map(current_map_index);
current_map[1][2] = 666;
int i = current_map[1][2];
std::cout << i;
}