グローバルに
struct Map {
 int x;
 int y;
 //などなど
};

Map g_Map[4096*4096];  //もっと広いかもしれない
とかいう馬鹿でかいデータの確保に挑戦して失敗した場合
例外をキャッチするのは無理なのでしょうか?
どこかの関数内で動的に確保したほうがいいのかな。