C语言memcpy的一些问题

如题所述

第1个回答  2019-11-02
可能错在了计算机存储机制上,
在32位系统的计算机中,每次变量的存储都是按以4的倍数位置开始的地址来存储的,
也就是说你新建一个变量,不管它是什么类型的,他都是从4的倍数位开始的。
虽然你这么存储是确实把内部东西都存储进去了,但是根据计算机的编码显示原因,
你直接看编译后产生的那些东西就是乱码的,或者不符合你要求的。
你可以对照原始存储进去的二进制码与原来的对比,应该是相同的。
而且int
x=10;
这里的int应该是4个字节,writedata(&x,2);应该是writedata(&x,4);
相似回答