关于数组越界

P1001 A+B Problem

int64 @ 2021-08-24 21:53:15

下面这段代码:

#include<iostream>
using namespace std;

int a[4];

int main() {
    cin >> a[0] >> a[1];
    a[10] = a[0] + a[1];
    a[2] = a[10];
    cout << a[2] << endl;
    return 0;
}

明显 a[10] 超过了 a 定义的长度 4,但是为何没有影响程序并且 AC 了此题?


by int64 @ 2021-08-24 21:53:37

我记得数组越界访问会 RE 的吧


by 一SakuRa @ 2021-08-24 21:54:05

@int64

离谱


by int32 @ 2021-08-24 21:54:31

a草


by 一SakuRa @ 2021-08-24 21:54:36

@int64

不一定(好像)


by MeowScore @ 2021-08-24 21:54:45

离谱艹


by w23c3c3 @ 2021-08-24 21:55:07

哈哈我似乎在谷群问过这样的问题


by MeowScore @ 2021-08-24 21:55:16

@int64 把10改成1000就炸了


by RenaMoe @ 2021-08-24 21:55:25

@int64 这得看 RP 了,你可能正好访问的是没分配的地方。开 O2 就容易挂了。


by int64 @ 2021-08-24 21:55:38

但是 cin&cout 的时候越界会 RE


by 斜揽残箫 @ 2021-08-24 21:55:47

我感觉你吸个氧肯定会 RE


| 下一页