6
多次元配列はどのようにメモリ内でフォーマットされますか?
Cでは、次のコードを使用して、2次元配列をヒープに動的に割り当てることができます。 int** someNumbers = malloc(arrayRows*sizeof(int*)); for (i = 0; i < arrayRows; i++) { someNumbers[i] = malloc(arrayColumns*sizeof(int)); } 明らかに、これは実際には、整数の個別の1次元配列の束へのポインターの1次元配列を作成します。 someNumbers[4][2]; しかし、次の行のように2D配列を静的に宣言すると...: int someNumbers[ARRAY_ROWS][ARRAY_COLUMNS]; ...同様の構造がスタック上に作成されますか、それとも完全に別の形式ですか?(つまり、ポインターの1D配列ですか?そうでない場合、それは何ですか、そしてそれへの参照はどのように理解されますか?) また、私が「システム」と言ったとき、それを理解するために実際に責任があるのは何ですか?カーネル?または、Cコンパイラはコンパイル中にそれを分類しますか?