是从动态分配的数组索引超出范围的元素有效

我已将数组声明为

int* arr = new int[10];

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

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

我这样做

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

输出为

100   200

我想知道代码为什么起作用。这是有效的还是我缺少有关此主题的某些信息。 arr [10]和arr [11]不应保留任何垃圾值。

qk8877 回答:是从动态分配的数组索引超出范围的元素有效

在数组上进行越界读取/写入是未定义的行为,因此任何事情都可能发生。它可能会起作用,它可能不会起作用,它可能每隔满月就起作用,一切都会发生。

本文链接:https://www.f2er.com/2390752.html

大家都在问