请选择 进入手机版 | 继续访问电脑版

[LINUX] Linux编程时出现Segmentation fault错误怎样 办理 ?

[复制链接]
查看139 | 回复19 | 2021-9-5 04:27:59 | 显示全部楼层 |阅读模式

有些开辟 者在Linux下历程 编程,使用 GDB调试时发现了一个Segmentation fault错误。这个错误告急 是访问了错误的内存段引起的,大概 是没有权限或者是内存段不存在,这个题目 怎样 处理呢?下面小编将为大家带来Linux编程时出现Segmentation fault错误的处理办法,一起去看看吧。

Linux编程时出现Segmentation fault错误怎样
办理
?

方法如下:

这个错误是怎么导致的呢?原来是在定义一个char范例 的指针,然后就直接对这个指针举行 字符串的干系 操作。比方 :

char *c1;

for(i=0; i《n;i++)

{

*c1 = getchar();

c1++;

}

代码意思大概是如许 ,这是很多开辟 者会犯的题目 。这个指针伤害 啊,要审慎 对待,就拿这里来说,如许 给指针赋值,我们并不知道这指针指向的是那边 呢,假如 写的数据覆盖了关键地区 数据那大概 会有劫难 性的后果,这就是访问了不该访问的地方。办理 的办法是什么呢,告诉这个指针到该到的地方,我用malloc为该指针将要指向的字符串申请一段空间,如许 就会指明体系 分配一段安全的空间,不会在把内存关键地区 分给你了。如许 你就可以安全操作了。

这个例子告诉我们指针是不能乱用的,假如 指针指向错误的内存,导致编程时出现Segmentation fault错误,还可以用上面的办法处理,假如 指向其他地区 ,还会导致更严峻 的后果。


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

avatar 123457748 | 2021-9-5 10:05:22 | 显示全部楼层
看了这么多帖子,第一次看到这么有深度了!
回复

使用道具 举报

avatar 珍惜637 | 2021-9-24 20:53:24 | 显示全部楼层
今天上网不回帖,回帖就回精华帖!
回复

使用道具 举报

avatar 光荣与梦想483 | 2021-9-26 09:41:04 | 显示全部楼层
好帖子!
回复

使用道具 举报

avatar 忆神姆原们 | 2021-9-26 23:45:10 | 显示全部楼层
admin楼主,你妈妈喊你回家吃药!
回复

使用道具 举报

avatar 方的豆豆 | 2021-9-26 23:45:13 | 显示全部楼层
admin楼主会死的很有节奏的!
回复

使用道具 举报

avatar 喝多的板砖剂 | 2021-10-2 01:29:30 | 显示全部楼层
赞一个!
回复

使用道具 举报

哥回复的不是帖子,是寂寞!
回复

使用道具 举报

楼上的别说的那么悲观好吧!
回复

使用道具 举报

这么好的帖子,应该加精华!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则