我有一段代码试图将数据从数据集读取到随机分配的内存块。我不知道数据集内部究竟是什么,但是它们访问矩阵值(十六进制值)并放到内存位置。它工作正常!
for (unsigned int i=0; i<header->numImg; ++i)
{
const unsigned int cur_proj = i; // absolute projection number
// read mx
double* const pMatx = MatrixBuffers + cur_proj * 12;
ifData.read((char*) (pMatx), 12 * sizeof(double));
}
MatrixBuffers是
double** MatrixBuffers = new double* [header.numImg];
MatrixBuffers[0] = new double[header.numImg * 12];
for (unsigned int i=1; i<header.glb_numImg; ++i) {
MatrixBuffers[i] = MatrixBuffers[0] + i * 12;
}
正如你所看到的,MatrixBuffers是随机分配的内存,比如它的凝视地址是6000.我的问题是,如何知道从2.5GB数据集中读取数据的确切位置(从哪个位置)?是6000还是其他地址?如何控制数据集的访问模式? 的 * ** * * 编辑的 * ** * ** * ** * 为清楚起见,在此之前有一个读操作,在此之后有一个读操作。之前的那个从第1个字节开始到第12个字节。如果上面的代码必须从第13个字节开始,那么如何让编译器知道pMatx的起始值是数据集中的第13个字节? 任何帮助表示赞赏。提前谢谢!