「ヘッダー」は構造体のオブジェクトであり、header.img の値は 496 であると考えることができます。ヘッダー構造体には 3 つの整数要素があるため、値は 12 バイトです。(4 バイトを int と見なす)
double** MatrixBuffers = new double* [header.img];
MatrixBuffers[0] = new double[header.img* 12];
for (unsigned int i=1; i<header.img; ++i) {
MatrixBuffers[i] = MatrixBuffers[0] + i * 12;
}
globaldata.adv_MatrixBuffers = MatrixBuffers;
MatrixBuffers が 496 double へのポインターであることを理解しています。しかし、2行目で何が起こっているのかわかりません。
MatrixBuffers[0] = new double[header.img* 12];
1.これは、MatrixBuffers[0] が 496*12 double へのポインターであることを意味しますか? 2. for ループで何が起きているのか? 3. コードの後半で、MatrixBuffer[0] が関数に渡されます。これは、ベース アドレスであるポインターを MatrixBuffers[0] に渡しているということですか?