我正在尝试将 32 字节字符串的前 16 个字节复制到dest
.
unsigned char src[32] = "HELLO-HELLO-HELLO-HELLO-HELLO-12";
unsigned char dest[16];
memcpy(dest, src, 16); // COPY
printf("%s\n", src);
printf("%lu\n", strlen(src));
printf("%s\n", dest);
printf("%lu\n", strlen(dest));
输出如下
HELLO-HELLO-HELLO-HELLO-HELLO-12
32
HELLO-HELLO-HELLHELLO-HELLO-HELLO-HELLO-HELLO-12
48
我只希望收到HELLO-HELLO-HELL
。dest
的前 16 个字节dest
实际上包含预期的结果。
为什么dest
比它实际可以容纳的更多?为什么它有一个长度16+32=48
?有没有办法只复制 to 的前 16 个src
字节dest
?