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

Clion(Apple Silicon)下main函数创建4500万元素二维数组报错问题

问题根因解释

你遇到的报错本质是栈溢出,核心是C语言不同内存分区的大小限制差异:

  • 首先计算你定义的dp数组占用内存:单int按4字节算,总大小为 (1e5+5) * 450 * 4 ≈ 180MB。
  • 函数内部定义的局部变量默认分配在栈内存区域,常规操作系统对单个进程的栈内存限制普遍只有8MB~16MB,远小于你需要的180MB,空间不足触发栈越界,就会抛出SIGSEGV段错误,对应你看到的退出码139。
  • 全局作用域的变量分配在静态存储区,该区域的内存配额远高于栈,常规场景下可以支持数GB的占用,180MB完全在允许范围内,因此移动到全局后程序可以正常运行。

如果不想把变量放到全局,也可以选择用malloc动态申请堆内存,堆内存的大小限制同样远高于栈,适合申请大内存块。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 21:45:05