24小时热门版块排行榜    

查看: 848  |  回复: 2

蜗牛的SKY

新虫 (初入文坛)

[求助] 8944 Segmentation fault 哪位大神可以给我解释一下这个问题~~~感谢~~~ 已有1人参与

我在运行程序的时候出现了段错误,在网上搜索了一下看到关于segmentation fault 的原因,看着有很多。
但我不知道该怎样确定这个错误出在哪里?
下面是显示的错误信息,请问从这个错误信息可以看出我的代码哪里有错误吗?这个8944是什么意思呢?我大致应该怎么找到这个错误并改正?
(程序是迭代法求解的程序,算了很长时间才出现这个错误的)
谢谢大家。
/opt/torque/mom_priv/jobs/39896.cluster.hpc.org.SC: line 16:  8944 Segmentation fault      ./a.out
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lijf517

木虫 (小有名气)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
蜗牛的SKY: 金币+20 2016-09-13 15:41:21
在错误提示的那个文件的第16行,看看有没有用数组,很大可能是数组越界了。比如你定义了一个大小为10的数组array[10], 那么在c和c++语言里你只能用到下标为0到9的数组元素,如果你语句里出现了array[10]或者比10更大的下标,就会出现这样的segmentation fault。有时候我们不会直接犯这样的错误,比如我们的数组元素下标是计算出来的。比如用到array[idx] =……。正常情况idx的取值范围应该是0到9,但我们可能之前与变量idx相关的语句有问题,给idx赋值了一个大于10的数,然后到这句时就出现这样的段错误了

发自小木虫Android客户端

» 本帖已获得的红花(最新10朵)

2楼2016-09-06 18:10:27
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

蜗牛的SKY

新虫 (初入文坛)

送红花一朵
引用回帖:
2楼: Originally posted by lijf517 at 2016-09-06 18:10:27
在错误提示的那个文件的第16行,看看有没有用数组,很大可能是数组越界了。比如你定义了一个大小为10的数组array, 那么在c和c++语言里你只能用到下标为0到9的数组元素,如果你语句里出现了array或者比10更大的下标, ...

谢谢你关注我的问题,我的代码里有太多数组,我也不太清楚是哪个有问题。。。
请问我能从错误提示中了解到我的代码大概哪里出错了吗?
或者我能从这个错误提示中得到什么有用的信息呢?
这个路径好像的提交的任务的什么东西的路径,并不是我的代码的路径。我也不太了解这个line16:8944 到底是个啥?

再次感谢你
3楼2016-09-06 21:54:04
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 蜗牛的SKY 的主题更新
信息提示
请填处理意见