我必须将char
*中的4个字节记忆为整数。
例如,我有一个整数int i = 3276854 (0x00320036)
和一个char header[54] = {0}
。我必须在标题+ 2处写我,好像我将内存从标题[2]打印到标题[6]一样::>
0032 0036
我尝试过:
memset(&header[2], i, 1);
但是似乎只将最后一个字节放入标头中,我得到:
0036 0000
我也尝试过:
memset(&header[2], i, 4);
但是它用i的最后一个字节填充每个字节,我得到:
3636 3636
我也尝试过使用二进制掩码:
ft_memset(&header[2], (int)(54 + size) & 0xff000000, 1); ft_memset(&header[3], (int)(54 + size) & 0x00ff0000, 1); ft_memset(&header[4], (int)(54 + size) & 0x0000ff00, 1); ft_memset(&header[5], (int)(54 + size) & 0x000000ff, 1);
我明白了:
3600 0000。
所以我不知道如何获得我的
0032 0036
或至少3600 3200
(也许其中有些东西的尾数少而又大,因为我是在MacOS(大尾数)下运行的)。
我必须将char *中的4个字节设置为整数。例如,我有一个整数int i = 3276854(0x00320036)和一个char标头[54] = {0}。我必须在标题+ 2处写我,好像我在打印内存...
memset
用恒定的字节值填充内存。第二个参数(类型为int
)将转换为unsigned char
值。
您可以使用memcpy
,但这会使您的代码依赖于CPU的底层耐久性。我认为这不是您想要的。