【发布时间】:2020-09-04 21:43:30
【问题描述】:
我开始学习 C 的基础知识,但我被这个产生这种奇怪输出的简单程序卡住了。我要做的是使用 memcpy() 函数将数组的内容复制到另一个数组中。
#include <stdio.h>
#include <string.h>
int main()
{
char source[13] = "Hello, World!";
char destination[13];
memcpy(&destination, &source, 13);
printf("%s\n", destination);
return 0;
}
“奇怪”的输出是:
Hello, World!Hello, World!(
让我想知道为什么会发生这种情况的是,如果我在 memcpy 中将输出从 13 更改为 12,那么输出是正确的,显然没有最后一个字符:
Hello, World
所以,我的问题是:“我缺少什么?有一些我不知道的理论基础吗?”
【问题讨论】:
标签: c arrays printf c-strings memcpy