2 次元配列への参照を関数に渡そうとしたときC の場合、ユーザーは g から「'*' トークンの前に ',' または '...' が必要です」というエラーが発生する可能性があります。このエラーは何を示しているのでしょうか?また、どのように解決すればよいでしょうか?
このエラーは、do_something() の関数プロトタイプが間違っていることを示しています。コンパイル時に既知の次元を持つ 2 次元配列への参照を渡すには、次の構文を使用する必要があります。
<code class="cpp">void do_something(int (&array)[board_width][board_height]);</code>
パラメータを int array[board_width][board_height] として宣言します。代わりに配列の最初の部分配列へのポインタを渡しますが、これはこの場合望ましい機能ではありません。
参照構文 &array により、実際の配列が確実に渡されます。これにより、関数が配列の内容を直接変更できるようになります。 int (&array)[board_width][board_height] という表記は、パラメータの配列が、board_width と board_height の次元を持つ 2 次元配列への参照であることを指定します。
対照的に、int array[board_width][board_height] ;パラメータ配列を、board_height 整数の 1 次元配列へのポインタとして宣言しているため、配列の 2 次元は無視されます。これにより、構文が正しくないため、エラーが報告されます。
以上が2 次元配列を参照渡しするときに C が「*」トークンの前に「expected ',' または '...'」をスローするのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。