为了账号安全,请及时绑定邮箱和手机立即绑定

为什么出现这种情况Segmentation fault (core dumped)


这就是代码http://img1.sycdn.imooc.com//56f650ce0001670705150411.jpg

正在回答

2 回答

我按楼主程序运行,在Linux下同样出现相同的情况,执行到循环时,gdb也不能打出值来。换了c-free ,第三个输出就出现莫名的值,我认为这是编译器的问题。

0 回复 有任何疑惑可以回复我~

*p = 2

*p = 1

*p = 5

*p = 1417759240

*p = 32767

*p = 1

*p = 10

*p = 100

*p = 0

-----------------

p[0]=2

p[1]=1

p[2]=5

p[3]=1417759228

p[4]=32767

p[5]=1

p[6]=10

p[7]=100

p[8]=0

删掉p[3]=101这条语句后的运行结果如上,由结果可知,p[3]、p[4]都指向了系统分配的存储其他数据的内存空间,是不可操作的,p[5]指向了array[0],可以改变其中的值。所以会出现崩溃的现象。至于系统为什么这么分,我猜测是编译优化的结果,如果还有别的解释,欢迎交流。

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为什么出现这种情况Segmentation fault (core dumped)

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信