memcpy()将整数值复制到char缓冲区

aru*_*run 0 c memory pointers memcpy

我试图将int的内存值复制到char缓冲区.代码如下所示,

#define CPYINT(a, b) memcpy(a, &b, 4)
............

char str1[4];
int i = 1;
CPYINT(str1, i);
printf("%s",s);

...........
Run Code Online (Sandbox Code Playgroud)

当我打印str1时,它是空白的.请澄清.

ice*_*ime 7

您正在将整数的字节表示复制到char数组中.然后printf,您要求将此数组解释为空终止字符串:str1[0]为零,您实际上是打印一个空字符串(我在这里跳过字节序说话).

你有什么期望?显然,如果你想打印整数的文本表示i,你应该使用printf("%d", i).