请问为什么在linux下编译执行时,出现"段错误

2021-02-23 12:37:47 字数 1060 阅读 5499

1楼:匿名用户

最后一句的问题,你既然已经把结束符‘\0’赋给*p 那么 ++p就指向结束符后一位元素,这个元素不能通过指针操控,所以段错误

linux运行程序段错误··要怎么解决··

2楼:沈磊磊磊

在编程中以下几类做法容易导致段错误,基本是是错误地使用指针引起的1)访问系统数据区,尤其是往 系统保护的内存地址写数据最常见就是给一个指针以0地址, unsigned char *ptr = 0x00;

2)内存越界(数组越界,变量类型不一致等) 访问到不属于你的内存区域我以前也遇到过这个问题后来就是参考这个帖子找到问题的,希望可以帮助到你

http://blog.csdn.***/yeyuangen/article/details/6822004

linux下终端运行文件,**没有错误,为什么出现段错误。

3楼:转转耳朵

你**bai也没有,

调用堆栈也没du有,谁能知道为啥段错误zhi啊dao,要不然你猜我今内天穿什么颜色的容衣服?

大神也不敢说自己的**肯定就没有错误,我猜你的意思是能正确编译吧?

那只能说明你的语法没错,仅此而已,写程序能正确编译只是第一步,后面调试的工作还很漫长。

下面说说怎么调试吧:

看你的系统提示应该还没有打开core输出,在运行程序前打个命令:

ulimit -c unlimited

这样设置之后再运行程序在段错误的时候能core dump,有core之后再gdb ./test core.***

core文件一般在你运行程序的目录里,core文件后缀每次不同,后面的***你需要自己看看文件名,一般是运行时的pid号。当然如果你的系统core的生成规则被改过,不是默认的,那就问你的系统管理员去找到core文件。

进去后打个bt,看下当前的调用堆栈,然后再看下哪儿出的问题。

当然这样做有个前提,那就是你在编译你的程序时加了-g参数,如果没有,重新去编译下再运行。

如果还是找不出来,再把你的调用堆栈和**发上来大家看看。

运行linux时出现下图错误,怎么办

1楼 匿名用户 kernel panic一般是linux内核遇到了无法继续的重大错误才显示的。。。你的错误是not syncing fatal exception,没有一个万能和完美的方法来解决所有的kernel panic问题,只能根据具体情况判断,你是否对系统做了什么修改,建议重新编译内核,把驱...

请问电脑出现以下界面是什么意思,eclipse中运行出现以下提示错误,是什么意思

1楼 匿名用户 开始 运行 输入 msconfig 选择启动项 找到命令描述为 c program files artbackup artlog mdb 的项目 取消前面的勾选 确定后重新启动 另 进入控制面板,找到odbc控制,在里面早,把所有access的选项都删了 这种方法不好 自伤严重 ec...

现在流行这个动作什么意思,请问这个动作出自哪里?有什么含义?为什么这么流行? 20

1楼 匿名用户 走你的意思,一般是由于中国首艘航母 辽宁舰 成功起降歼 15舰载机,那个下达起飞指令的动作,在短时间内掀起网络模仿热潮,被网友戏称 走你 。 请问这个动作出自 ?有什么含义?为什么这么流行? 20 2楼 无忧剑芯 海绵宝宝里面的章鱼哥! 3楼 匿名用户 dj soda的招牌动作,请采...