int **p = new int*[m];
for(int i=0;i<m;i++) {
  p[i] = new int[n];
}
面倒だけどこれでもいいんじゃなかったっけ?