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

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

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

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

程序运行在内存中

系统在程序运行之前会在内存中先给程序画出一个冲租空间

这个空间有些来存放代码的有些来存放运行时的变量,还有些....

这空判拦个空间有一个区间使用来存放运行时的变量什么的

段错误 就是 程序运行时,变量访问越界斗胡一类的问题...

可能出现的原因是:

数组下标越界

动态分配内存的指针被double free了(释放两次了)


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12449277.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存