为什么我编译时没有给出错误?
#include <iostream>
using namespace std;
int main()
{
int *a = new int[2];
// int a[2]; // even this is not giving error
a[0] = 0;
a[1] = 1;
a[2] = 2;
a[3] = 3;
a[100] = 4;
int b;
return 0;
}
有人可以解释为什么会发生这种情况吗? 提前致谢。)
最佳答案
因为未定义的行为==任何事情都可能发生。你很不幸它没有崩溃,这种行为可能隐藏错误。
关于c++ - 当我写入超出数组末尾时,为什么不会出现段错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48198145/