C语言中什么是、、段错误、、引起段错误的原因有哪些?

 我来答
y彩虹是甜的
高粉答主

2020-10-17 · 女人的感情世界,专注你的感情。
y彩虹是甜的
采纳数:48 获赞数:13623

向TA提问 私信TA
展开全部

在编程中以下几类做法容易导致段错误,基本上是错误地使用指针引起的。所谓的段错误就是指访问的内存超出了系统所给这个程序的内存空间,段错误应该就是访问了不可访问的内存,这个内存区要么是不存在的,要么是受到系统保护的。

段错误就是指访问的内存超出了系统所给这个程序的内存空间,通常这个值是由gd tr来保存的,他是一个48位的寄存器,其中的32位是保存由它指向的 gdt表,后13位保存 相应于gdt的下标,最后3位包括了程序是否在内存中以及程序的在cpu中的运行级别,指向 的gdt是由以64位为一个单位的表,在这张表中就保存着程序运行的代码段以及数据段的起 始地址以及与此相应的段限和页面交换还有程序运行级别还有内存粒度等等的信息。

百度网友e29fac5
2011-08-18 · TA获得超过1315个赞
知道小有建树答主
回答量:790
采纳率:50%
帮助的人:600万
展开全部
大部分都是指针引起的,比如指针指向了非法空间,在对指针赋值前就使用,指针没初始化等。
追问
大哥、、有例子没有啊、、
追答
比如你定义一个指针,int *p; *p=5; 在没有给p赋值的情况下就使用了p,正常应该 int a; p = &a; *p=5;
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2011-08-18
展开全部
段错误就是指访问的内存超出了系统所给这个程序的内存空间。
基本是是错误地使用指针引起的,具体例如:访问系统数据区、内存越界(数组越界,变量类型不一致等)..
追问
大哥、、有例子没有啊 、、可以再详细一点不
追答
数组越界还不算是例子么-_-|| 小哥,多看看书!!!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
c246809753
2011-08-18 · 超过10用户采纳过TA的回答
知道答主
回答量:60
采纳率:0%
帮助的人:32.6万
展开全部
内存访问错误。通常是指针访问了不存在的内存或者访问的内存超限
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式