XXY2022 @ 2022-11-14 13:00:14
我想搞个RE,结果
#include<iostream>
using namespace std;
int main()
{
int a[1];
cin>>a[0]>>a[1];
cout<<a[0]+a[1];
return 0;
}
对了是怎么回事???
by VitrelosTia @ 2022-11-14 13:02:10
@XXY2022 没有越界,这样才越界
#include<iostream>
using namespace std;
int main()
{
int a[1];
cin>>a[0]>>a[114514];
cout<<a[0]+a[114514];
return 0;
}
by XXY2022 @ 2022-11-14 13:03:33
@VT_SODC3DC3BSLF 为什么?
by XXY2022 @ 2022-11-14 13:04:27
对了求互关 @VT_SODC3DC3BSLF
by VitrelosTia @ 2022-11-14 13:05:21
@XXY2022 事实上
#include<iostream>
using namespace std;
int main()
{
int a[1];
cin>>a[0]>>a[2];
cout<<a[0]+a[2];
return 0;
}
也能过
by Qiaoqia @ 2022-11-14 13:08:50
未定义行为。
by __zhy @ 2022-11-14 13:14:28
内存会混乱
by Vanishing_Stars @ 2022-11-14 13:28:41
@XXY2022 您的代码没有越界
by hukk @ 2022-11-14 13:33:05
这是 UB,在 UB 中一切皆有可能。
(UB:未定义行为)
by Resolute_Faith @ 2022-11-14 13:48:38
#include<bits/stdc++.h>
using namespace std;
int a[2],b[2];
int main(){
cin>>a[0]>>a[1];
cout<<b[-1]+b[-2];
}
by Mao_ @ 2022-11-14 14:32:32
@VT_SODC3DC3BSLF 好烂的数字