質問: ### 前提・実現したいこと C++で二次元配列を関数に渡そうとしています。 ただただ、先頭ポインタを渡そうとしています。 ### 発生している問題・エラーメッセージ > > main.cpp:20:5: error: no matching function for call to 'walk_around' > > walk_around(map); > > ^~~~~~~~~~~ > > main.cpp:13:6: note: candidate function not viable: no known conversion from > > 'int [M][N]' to 'int (*)[N]' for 1st argument > > void walk_around(int array[M][N]){ > > ^ > > 1 error generated. > > > ### ソースコード ``` #include int N=10; int M=10; void walk_around(int array[M][N]){ } int main(int argc, const char * argv[]) { int map[M][N]; walk_around(map);//ここでエラーが生じる return 0; } ``` ### 補足情報(言語/FW/ツール等のバージョンなど) いままで普通にできていた処理ができなくなっているような気がして先に進めず困っています。 gccのバージョンは4.2.1です。 何かわかることがあれば宜しくお願いします。
回答: MとNが定数じゃ無いからです。 ``` const int N = 10; const int M = 10; ``` としてみてください。