将数据集文件(十六进制值)读取到内存块上

时间:2014-01-23 04:37:47

标签: c++ dataset ifstream

我有一段代码试图将数据从数据集读取到随机分配的内存块。我不知道数据集内部究竟是什么,但是它们访问矩阵值(十六进制值)并放到内存位置。它工作正常!

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个字节?  任何帮助表示赞赏。提前谢谢!

0 个答案:

没有答案