質問: {{0, 0, 0, 0, 0}, {0, 0, 0, 0, 1}, {0, 0, 0, 1, 1}, {0, 0, 1, 1, 1}, {0, 1, 1, 1, 1}}; //なんで *table で割るかがわからない printf("%d\n", sizeof(table) / sizeof(*table)); //出力結果 //5 } ```
回答: Cの場合は文字通りの2次元配列は無いので、「配列へのポインタの配列」で代用しています。 ポインタの配列全体のサイズ`sizeof table`を、1つの要素のサイズ`sizeof *table`(ポインタのサイズ)で割ると要素数が分かります。