为什么这样的代码会在洛谷online judge上编译失败啊?

学术版

@[Tomzying](/user/939065) 把const int maxsz = 1e7 + 5; int f[maxsz] = {1};删去
by qianhongtao18 @ 2024-04-10 22:06:42


貌似是数组开大了,但是不应该CE啊,平常写个manacher,线性筛什么的1e7很正常啊
by xutianze @ 2024-04-10 22:29:48


额,把数组初始化去了就没问题了,猜一下因为底层逻辑,数组初始赋值在编译时进行,而数组调用在运行时进行,可能谷的编译器设定的体积阈值比较小
by xutianze @ 2024-04-10 22:34:00


@[Tomzying](/user/939065) 把代码改成 ```cpp #include <bits/stdc++.h> using namespace std; const int maxsz = 1e7 + 5; int f[maxsz]; int main() { f[0]=1; cout << "code is ok" << endl; return 0; } ``` 就可以了,我记得是因为用大括号赋值会导致编译出来的代码会对数组的每一个元素赋值,然后可执行文件就会过大
by hutaooatuh @ 2024-04-11 08:54:17


|