“header”是一个结构的对象,你可以认为 header.img 的值为 496。header 结构有 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 双打的指针。但我不明白第二行发生了什么。
MatrixBuffers[0] = new double[header.img* 12];
1.这是否意味着 MatrixBuffers[0] 是指向 496*12 双精度数的指针?2.for循环发生了什么?3.稍后在代码中,MatrixBuffer[0] 被传递给一个函数。这是否意味着我将一个指针作为基地址传递给 MatrixBuffers[0] ?