我正在尝试将 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?