3次元配列を動的に確保する際に、メモリ領域を連続にする以下の処理について解説をいただければと思います。
全部わからないのですが、とくに矢印のところがわかりません。
// メモリ領域が連続な2x3x4の配列
int ***d = (int***)malloc(2 * sizeof(int**));
d[0] = (int**)malloc(2 * 3 * sizeof(int*));
d[0][0] = (int*)malloc(2 * 3 * 4 * sizeof(int));
for (int i = 0; i < 2; i++) {
d[i] = d[0] + i * 3; ←不明
for (int j = 0; j < 3; j++) d[i][j] = d[0][0] + i * 3 * 4 + j * 4; ←不明
}
// 解放
free(d[0][0]);
free(d[0]);
free(d);
よろしくお願いいたします。
探検
C言語なら俺に聞け 146
■ このスレッドは過去ログ倉庫に格納されています
23デフォルトの名無しさん (ササクッテロロ Sp21-4Ye1)
2018/05/14(月) 21:02:48.20ID:/gxAL6M9p■ このスレッドは過去ログ倉庫に格納されています
