我已将数组声明为
int* arr = new int[10];
然后我填写了前10个元素,并且也做了
arr[10] = 100;
arr[11] = 200;
我这样做
cout << arr[10] << '\t' << arr[11];
输出为
100 200
我想知道代码为什么起作用。这是有效的还是我缺少有关此主题的某些信息。 arr [10]和arr [11]不应保留任何垃圾值。
我已将数组声明为
int* arr = new int[10];
然后我填写了前10个元素,并且也做了
arr[10] = 100;
arr[11] = 200;
我这样做
cout << arr[10] << '\t' << arr[11];
输出为
100 200
我想知道代码为什么起作用。这是有效的还是我缺少有关此主题的某些信息。 arr [10]和arr [11]不应保留任何垃圾值。
在数组上进行越界读取/写入是未定义的行为,因此任何事情都可能发生。它可能会起作用,它可能不会起作用,它可能每隔满月就起作用,一切都会发生。