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

为何我的C语言程序出现segmentation fault (core dumped)错误?原因及含义解析

关于Segmentation Fault的解释及你的程序错误原因

什么是Segmentation Fault(段错误)

Segmentation Fault就是程序试图访问无权访问的内存区域,或者访问了无效的内存地址。常见场景包括:

  • 读写操作系统内核独占的内存
  • 越界访问数组、字符串
  • 使用未初始化或已释放的指针
  • 函数参数传递错误导致内存地址非法

一旦出现这种情况,操作系统会立刻终止程序,防止错误操作破坏系统或其他程序的内存。

你的程序触发段错误的原因

看你的代码,问题出在这一行:

scanf("%d", n);

scanf函数读取数值时,第二个参数必须是变量的内存地址,这样它才能把用户输入的值写入对应内存。你直接传了n,而n是未初始化的局部变量,它的初始值是随机的——这相当于让scanf往一个随机的内存地址写数据,这个地址大概率是你程序无权访问的,直接触发了段错误。

修正方法

把scanf那行改成:

scanf("%d", &n);

&n是取n的内存地址,这样scanf就能正确将用户输入的值存入n中,程序就能正常运行了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.02 03:33:12