As in my previous question, 볼륨 데이터 세트의 .raw 파일을 바이트 배열로로드하는 것이 좋습니다. X, Y, Z 좌표를 인덱싱 할 때 3D 바이트 배열을 사용하면 작업이 더 쉬워 질 것이라고 생각하지만 볼륨을로드하는 데 사용해야하는 읽기 크기가 확실하지 않습니다. 이 크기 선언으로 볼륨 데이터를 올바르게 색인 할 수 있습니까?.raw 파일에서 3D 바이트 배열을로드하려면
int XDIM=256, YDIM=256, ZDIM=256;
const int size = XDIM*YDIM*ZDIM;
bool LoadVolumeFromFile(const char* fileName) {
FILE *pFile = fopen(fileName,"rb");
if(NULL == pFile) {
return false;
}
GLubyte* pVolume=new GLubyte[XDIM][YDIM][ZDIM];
fread(pVolume,sizeof(GLubyte),size,pFile); // <-is this size ok?
fclose(pFile);
엄밀히 말하자면, 코드 예제는 C가 아니고 C ('new'를 사용하기 때문에)입니다. 이 크기는 파일에서 충분한 데이터가 있다고 가정하고 * pVolume을 채우기에 충분한 바이트를 파일에서 읽을 것입니다. 그러나 16, 32, n-bit 데이터 유형으로 변경 한 경우에만 size = sizeof (GLubyte [XDIM] [YDIM] [ZDIM])로 선언 할 수 있습니다. –