[]
将第五个元素(我认为应该不存在)分配给100。它没有给我任何编译器错误。大小仍然为4,但是当我在索引5处请求对象时,它给了我100。我很困惑……为什么它没有给我编译器错误?数组的大小不应该固定吗?int main()
{
int arr[4];
arr[5] = 100;
cout << sizeof(arr)/sizeof(arr[0]) << endl;
cout << arr[5] << endl;
return 0;
}
Output:
4
100
动态分配的内存也会发生同样的事情。
int main() { int * arr; arr = new int[4]; arr[5] = 10; cout << arr[5] << endl; //10 delete [] arr; return 0; }