如果我们使用memcpy将更多数据从源复制到目标,会发生什么?

时间:2013-06-14 17:09:31

标签: c arrays memcpy

我有以下代码:

int dst[5];
int src[100];

// assign value to array src
memcpy(&dst[0], &src[0], sizeof(int) * 100);

在这种情况下会发生什么?只会将前5个元素复制到数组dst吗? 或程序会崩溃?

1 个答案:

答案 0 :(得分:10)

这会调用未定义的行为。任何事情都可能发生。

在实践中,可能会发生的事情是dst之外的内存将被覆盖,破坏其他内容,从而破坏程序的状态。最好的情况是,这会导致程序崩溃。