为什么我没有'溢出错误'?

Mou*_*rim -1 c c++

我根据'memcpy'手册页编写了这段小代码.我执行了它,但我没有得到任何错误.通常,我应该得到'seg fault',因为我试图将消息复制到小目的地.

char str1[1];
char str2[] = "Big Message";

memcpy(&str1, &str2, strlen(str2));
Run Code Online (Sandbox Code Playgroud)

Nat*_*ica 8

未定义的行为未定义.什么事情都可能发生.它可以运行,崩溃和燃烧,取出互联网,撞墙撞墙.

  • 因为这就是UB的意思.具有有效语法的可编译代码,可以刻录您周围的一切. (3认同)
  • [另一个有趣的链接](http://blog.regehr.org/archives/213),以了解未定义的行为意味着什么 (2认同)