免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
123下一页
最近访问板块 发新帖
查看: 8220 | 回复: 21
打印 上一主题 下一主题

linux下的C 语言编程,运行时出现“段错误”,请高手指教,不慎感激! [复制链接]

loveswallow 该用户已被删除
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-06-21 15:09 |只看该作者 |倒序浏览
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
2 [报告]
发表于 2006-06-21 15:25 |只看该作者
没有看代码,你仔细检查一下指针的使用!
loveswallow 该用户已被删除
3 [报告]
发表于 2006-06-21 16:01 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
4 [报告]
发表于 2006-06-22 03:37 |只看该作者
用gdb也找不到吗?

论坛徽章:
0
5 [报告]
发表于 2006-06-22 09:38 |只看该作者
粗粗看了一下,userfd用的有问题,一会是int * 类型,一会是 int 型的

论坛徽章:
0
6 [报告]
发表于 2006-06-22 11:26 |只看该作者
段错误,我也遇到过

一次是因为访问不存在的数组成员
还有一次是因为没有初始化一个指针,就使用它

论坛徽章:
0
7 [报告]
发表于 2006-06-23 15:36 |只看该作者
可能是EPIPE错误,查一下吧

论坛徽章:
0
8 [报告]
发表于 2006-06-23 16:17 |只看该作者
一般都是因为指针打飞了,指到的地方已经不属于本程序有权限读写的部分了

论坛徽章:
0
9 [报告]
发表于 2006-06-23 16:55 |只看该作者
原帖由 pcs306 于 2006-6-23 16:17 发表
一般都是因为指针打飞了,指到的地方已经不属于本程序有权限读写的部分了



呵呵..

论坛徽章:
0
10 [报告]
发表于 2006-06-26 08:41 |只看该作者
楼主的代码能不能改一下编排风格,看起来太痛苦了。对于段错误这种问题。可以分析以下原因:
(1):指针非法,比如使用没有初始化的指针(没有为此指针指向的对象分配空间),或着Free掉之后再次使用。
(2):数组访问越界,访问的元素下标超过数组围长
(3):缓存溢出,对于这种while(1) {do}的程序,这个问题最容易发生,多此sprintf或着strcat有可能将某个
buff填满,溢出,所以每次使用前,最好memset一下,不过要是一开始就是段错误,而不是运行了一会儿出现的,(3)的可能性就比较小。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP