我有以下代码:
int dst[5];
int src[100];
// assign value to array src
memcpy(&dst[0], &src[0], sizeof(int) * 100);
在这种情况下会发生什么?只会将前5个元素复制到数组dst
吗?
或程序会崩溃?
答案 0 :(得分:10)
这会调用未定义的行为。任何事情都可能发生。
在实践中,可能会发生的事情是dst
之外的内存将被覆盖,破坏其他内容,从而破坏程序的状态。最好的情况是,这会导致程序崩溃。