@[cidigdit](/user/1156616) 小范围越界不报RE
by ln001 @ 2024-08-16 15:59:56
@[ln001](/user/644963) 可是有的题数组开19越界访问了
20就报RE,vs也会异常退出。为啥单单这道题就不会报异常也不会RE,只有clion的才会异常退出。我不是很理解诶,这和编译环境有关系吗?
by cidigdit @ 2024-08-17 02:44:56
@[cidigdit](/user/1156616) 和编译环境没有关系,跟代码习惯有关。
比如说下面这个代码,当输入的数是 `1001` 时,并没有报RE,而是返回了另一个数组的值。
```cpp
#include <bits/stdc++.h>
using namespace std;
ll a[1000], b[1000];
signed main()
{
f(i, 1, 999)b[i] = 114;
ll x;
cin>>x;
cout<<a[x];
return 0;
}
```
by ln001 @ 2024-08-17 08:18:42
代码是这个
```cpp
#include <bits/stdc++.h>
#define ll long long
#define f(x, y, z) for (ll x = (y); x <= (z); x++)
using namespace std;
const long long INF = 0x3f3f3f3f3f3f3f3f;
ll a[1000], b[1000];
signed main()
{
f(i, 1, 999)b[i] = 114;
ll x;
cin>>x;
cout<<a[x];
return 0;
}
```
by ln001 @ 2024-08-17 08:19:54