// 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));
有人可以解释为什么第二个不起作用吗?我从复制的内存是char *
。当我尝试测试fnamesize和fsize的值时,如printf("fsize is %d,fnamesize is %d",fsize,fnamesize);
,fsize会给出意想不到的值,但fnamesize会给出我期望的值。C:从字符数组复制到int
想法?
绝对正确。编写一个“网络堆栈模拟器”,并且部分项目正在使用ntoh_和hton_。感谢您让我走向正确的方向! – Joseph 2012-02-14 03:59:47
很高兴我能帮忙:) – MByD 2012-02-14 04:00:41