You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

运行代码时终端返回‘process exited with return value 3221225725’求助

解决进程退出码3221225725的问题

每次运行代码时,终端返回:

process exited with return value 3221225725

以下是相关代码(省略了完整质数列表):

#include <bits/stdc++.h>
using namespace std;

int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    vector <long long> Prime(664579);
    Prime = {2, 3, ...., 9999991};
}

问题原因

这个退出码对应Windows系统下的栈溢出错误(0xC00000FD)。你当前的写法先创建了一个包含664579个元素的vector,随后用超大规模的初始化列表赋值——而初始化列表的元素会先被临时存放在栈内存中,栈的容量远小于堆,直接处理这么多元素会导致栈内存耗尽,触发崩溃。

解决方案

  • 方案一:直接用初始化列表初始化vector
    跳过先指定大小创建vector的步骤,直接用初始化列表构造,这样元素会直接在堆上分配内存,避免栈溢出:

    #include <bits/stdc++.h>
    using namespace std;
    
    int main() {
        ios_base::sync_with_stdio(false);
        cin.tie(NULL);
        vector<long long> Prime = {2, 3, ...., 9999991};
    }
    
  • 方案二:预分配堆内存后插入元素
    如果需要提前指定容量,先预留堆内存,再用insert方法添加初始化列表的元素:

    #include <bits/stdc++.h>
    using namespace std;
    
    int main() {
        ios_base::sync_with_stdio(false);
        cin.tie(NULL);
        vector<long long> Prime;
        Prime.reserve(664579); // 预分配足够的堆内存
        Prime.insert(Prime.end(), {2, 3, ...., 9999991});
    }
    
  • 补充优化建议
    若质数列表极长,直接把数千个字面量写在代码里不仅容易触发栈溢出,还会导致代码臃肿。建议将质数数据存储到外部文本文件中,程序运行时从文件读取并填充vector,这种方式更稳定且易于维护。

内容的提问来源于stack exchange,提问作者Andrean Stephanus

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 14:21:04