我在我的文件加载器中工作,我认为下一次更新更好,而不是继续使用 fread 和 fseek 将洞文件读取到 BYTE 缓冲区,我也是,现在我想知道是否没有简单的分配方法此 BYTE 缓冲区的一部分到结构中。
我已经尝试制作一个与结构相同大小的临时缓冲区,将我需要的所有字节从原始缓冲区复制到它,并使用 memcpy,但它不能正常工作,我刚刚收到很多随机数(其中我想我正在接受他们的指点,但我不知道对不对)。
感谢您的时间!
编辑:真实代码
void memread(BYTE from[],int pos, void * to,size_t size)
{
BYTE * temp = new BYTE[sizeof(BYTE)*size];
for (unsigned int i = 0; i< 1+size; i++)
temp[i] = from[i+pos];
memcpy(to,temp,size);
}
... inside the file loader ...
fseek(fl,0,SEEK_END);
const int memory_size = (int)ftell(fl);
BYTE * memory = new BYTE[sizeof(BYTE)*memory_size];
fseek(fl,0,SEEK_SET);
for (int i=1;i<=memory_size;i++)
fread(&memory[i],sizeof(BYTE),1,fl);
fclose(fl);
int memory_pos = 0;
XM::Memory xm;
memset(&xm,0,sizeof(XM::Memory));
memread(memory,1,&xm.Header,sizeof(XM::Header));