有个很疑惑的点,```string```初始值为```NULL```,要```resize```或```push_back```(和```vector<char>```差不多)来进行改变。在长度为```0```的时候访问应该会```Runtime Error```,而不是```Wrong Answer```。
by Kapo_Hisy @ 2023-10-03 17:39:48
@[Kapo_Hisy](/user/922691) 数组越界一般不会直接RE
by xuyao35 @ 2024-01-29 14:08:17
数组本质是指针空间,出去了就是空指针解引用,应该会没掉。而且 string 的本质我没有了解,应该是 new 指针,指针应该更会 RE。
WA 的点我不太清楚,你的 char 版本我没看,有没有种可能,就是getline 和 fgets 的问题。
by Kapo_Hisy @ 2024-01-29 14:30:05
当然,我有可能说错了。还是谢谢大佬 @[xuyao35](/user/1122193) 的提示,我会去查一下。
by Kapo_Hisy @ 2024-01-29 14:31:01
我查了一下,词条是:数组越界会 RE 吗?
回复:
Runtime Error (RE) : 运行时错误,这个一般是程序在运行期间执行了非法的操作造成的。 以下列出常见的错误类型: ACCESS_VIOLATION 您的程序想从一些非法的地址空间读取或向其中写入内容。 一般例如指针、**数组下标越界**都会造成这个错误的。
by Kapo_Hisy @ 2024-01-29 14:33:32
@[CurryNo_1](/user/828573) ,你的50分代码是两个WA,一个TLE,你的87分代码是一个TLE,好像没有两个WA的点。
by Kapo_Hisy @ 2024-01-29 14:36:05
@[Kapo_Hisy](/user/922691) 可以逝一下:
```cpp
#include<bits/stdc++.h>
using namespace std;
int main()
{
long long n[1] = {1};
cout << n[2] << endl;
return 0;
}
```
我的编译器输出了12653456,并且正常地return value 0
by xuyao35 @ 2024-01-29 19:09:30
@[Kapo_Hisy](/user/922691) 交到这题评测是全WA
by xuyao35 @ 2024-01-29 19:10:40
那可能确实不会直接报 RE,抱歉,本蒟蒻学到了。这应该是内存空间溢出,随便找一个 int 空间解引用。
by Kapo_Hisy @ 2024-01-30 11:15:45