#include<bitset>
#include<cstdio>
using namespace std;
template<int len=1>
void solve(int n) {
if(n>len) {
solve<min(len<<1,1<<26)>(n);
return ;
}
bitset<len> bit;
}
int main() {
solve(20000000);
puts("fine");
return 0;
}
这份代码,在某些地方正确(比如洛谷IDE),某些地方 RE(比如我的电脑,以及这个 online gdb(国内用户加载不出来多等一会。))
我的电脑爆的是 EXT_BAD_ACCESS,然后 online gdb 爆的是 Segmentation fault (core dumped)。
可是如果改成下面的 solve(10000000) 又可以对。为什么呢?该怎么改?