У меня есть 3d-массив элемента (x, y, z), которого нет в памяти из-за его возможного размера, превышающего 4 ГБ. В каждом цикле я могу получить только двумерный массив (x, z). Из-за этого ограничения
Я могу легко сохранить их в файл порядка (x, z, y), используя
for (int iz=0;iz < nz; iz++)
for (int ix=0;ix < nx; ix++)
fwrite( (unsigned int *)(data+ix+iz*nx), element_size, 1, fp);
, что совпадает с
fwrite( (unsigned int *)(data), element_size, nx*nz, fp);
Но для файла порядка (x, y, z) я должен сделать это для каждого iy
for (int iz=0;iz < nz; iz++) {
fseek(fp,(iy*nx+iz*nx*ny)*element_size,SEEK_SET);
fwrite( (unsigned int *)(data+iz*nx), element_size, nx, fp);
}
Это, однако, очень медленно. Есть ли лучший способ сделать это в VC ++?