>>212
6. std::vector<int>やnew int[n * n]など1次元配列を使う。
薄いラッパでもあれば結構使える。

>>217
たぶんreintepret_cast<int(&)[10][10]>(p)[1][2] = 3;ならいけるはず。

>>221-222
同様にreinterpret_cast<arrint&>(p)[0][12] = 3;や((arrint&)p)[0][12] = 3;とできるはず。
さらにnew arrintというようにはできないか?
しかしtypedefでそもそも要素数がコンパイル時に決定しているので本末転倒。