C语言中什么是、、段错误、、引起段错误的原因有哪些?
4个回答
展开全部
在编程中以下几类做法容易导致段错误,基本上是错误地使用指针引起的。所谓的段错误就是指访问的内存超出了系统所给这个程序的内存空间,段错误应该就是访问了不可访问的内存,这个内存区要么是不存在的,要么是受到系统保护的。
段错误就是指访问的内存超出了系统所给这个程序的内存空间,通常这个值是由gd tr来保存的,他是一个48位的寄存器,其中的32位是保存由它指向的 gdt表,后13位保存 相应于gdt的下标,最后3位包括了程序是否在内存中以及程序的在cpu中的运行级别,指向 的gdt是由以64位为一个单位的表,在这张表中就保存着程序运行的代码段以及数据段的起 始地址以及与此相应的段限和页面交换还有程序运行级别还有内存粒度等等的信息。
展开全部
大部分都是指针引起的,比如指针指向了非法空间,在对指针赋值前就使用,指针没初始化等。
追问
大哥、、有例子没有啊、、
追答
比如你定义一个指针,int *p; *p=5; 在没有给p赋值的情况下就使用了p,正常应该 int a; p = &a; *p=5;
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2011-08-18
展开全部
段错误就是指访问的内存超出了系统所给这个程序的内存空间。
基本是是错误地使用指针引起的,具体例如:访问系统数据区、内存越界(数组越界,变量类型不一致等)..
基本是是错误地使用指针引起的,具体例如:访问系统数据区、内存越界(数组越界,变量类型不一致等)..
追问
大哥、、有例子没有啊 、、可以再详细一点不
追答
数组越界还不算是例子么-_-|| 小哥,多看看书!!!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
内存访问错误。通常是指针访问了不存在的内存或者访问的内存超限
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询