【发布时间】:2012-02-14 03:54:18
【问题描述】:
// Works
int fnamesize=0;
fnamesize=message[0]<<24;
fnamesize+=message[1]<<16;
fnamesize+=message[2]<<8;
fnamesize+=message[3];
// Doesn't work
int fsize;
memcpy(&fsize,message,sizeof(int));
有人可以解释为什么第二个不起作用吗?我正在复制的内存 message 是 char *。当我尝试测试 fnamesize 和 fsize 的值时,例如printf("fsize is %d,fnamesize is %d",fsize,fnamesize);,fsize 给出了一个意外的值,但 fnamesize 给出了我期望的值。
想法?
【问题讨论】: