unsigned char ucvalue[32][32][32]; //main data // Writing Header short size3[3] = {32, 32, 32}; ChangeEndian(&size3[0], sizeof(short)); //Swap byte order ChangeEndian(&size3[1], sizeof(short)); ChangeEndian(&size3[2], sizeof(short)); fwrite(size3, sizeof(short), 3, pFile); // Writing Body for (int z = 0; z < 32; z++) for (int y = 0; y < 32; y++) for (int x = 0; x < 32; x++) fwrite(&ucvalue[z][y][x], sizeof(char), 1, pFile); |
// Definition@(pointer position, byte length) void ChangeEndian(void *pHead, unsigned int length); // Function void ChangeEndian(void* pHead, unsigned int length){ unsigned char *pBuf = new unsigned char [length]; // temporary data buffer // copy data to buffer for (unsigned int i = 0; i < length; i++) pBuf[i] = *((unsigned char*)pHead + i); // copy data from buffer backwardly for (unsigned int i = 0; i < length; i++) *((unsigned char*)pHead + i) = pBuf[length - 1 - i]; delete pBuf; // release buffer } |