是从动态分配的数组中索引的元素超出了有效范围[duplicate]

问题描述 投票:1回答:1
我已将数组声明为

int* arr = new int[10];

然后我填写了前10个元素,并且也做了

arr[10] = 100; arr[11] = 200;

我做的时候

cout << arr[10] << '\t' << arr[11];

输出为

100 200

我想知道代码为什么起作用。这是有效的还是我缺少有关此主题的某些信息。arr [10]和arr [11]不应包含任何垃圾值。
c++ arrays range new-operator garbage
1个回答
0
投票
读取/写入数组的边界是不确定的行为,因此任何事情都可能发生。它可能起作用,它可能不起作用,它可能每隔第二个满月就起作用,任何事情都会发生。
© www.soinside.com 2019 - 2024. All rights reserved.