小编Gaj*_*ali的帖子

用于将固定长度缓冲区复制到结构中的memcpy

我有这个示例代码:

struct
{
    char a[2];
    char b[2];
} buff;

char buffer1[5] = "ABCD";
Run Code Online (Sandbox Code Playgroud)

要复制buffer1到结构成员,我这样做:

char c[3],d[3];
memcpy(&buff,buffer1,4);
sprintf(c,"%2.2s",buff.a);
sprintf(d,"%2.2s",buff.b);
printf("c=%s,d=%s",c,d);
Run Code Online (Sandbox Code Playgroud)

当我打印变量c和d时,我正确地将c和d变量中的值变为:c="AB"c="CD".

那么我的问题是,即使我正确地获得输出,也会memcpy影响与空字符终止相关的任何事情或者有其他意外的与记忆相关的后果吗?

c

4
推荐指数
1
解决办法
5098
查看次数

标签 统计

c ×1