サイズが事前に分かっていれば (定数であるならば)、
#define M (10) #define N (10) double a[M][N]; // 静的変数 int main() ...
でも残念ながらこういう場合はあまり多くない。 数値実験をする場合、 行列にしても2次元格子上の数値データにしても、 サイズを色々と変えて実験すべきである (この点は肝に命じて欲しい)。 そういうときに、 毎回 M, N の値を書き換えてコンパイルし直す、 というのは拙い。