在c程序中,经常会遇到段错误(segment error)和总线错误(bus error),这两种问题出现的原因可能如下

  • 段错误:

    1. 对一个NULL指针解引用。
    2. 访问程序进程以外的内存空间。

  实际上,第一个原因可以规约到第二个原因,在一个c程序的虚拟内存空间中,从低地址到高地址一次是代码区,堆区(向上增长),栈区(向下增长),最上是常量区,其中NULL指针的位置正好是虚拟内存中地址为0的位置,而这个位置是不属于以上4个区域的,同理一些比较低的地址也不属于这四个区,所以造成段错误的原因是访问了程序虚拟内存空间4个区以外的地址,在平时的开发中,最大的可能还是对NULL进行了解引用。

  • 总线错误

    1. 对一个错误的起始地址进行解引用

  由于进程的虚拟内存空间实际上是对物理地址的一个映射,操作系统和编译器会用内存对齐来做优化,通常就是4字节对齐,所以int,float这种类型的起始地址都是4的倍数,而short的起始地址是2的倍数,double的起始地址是8的倍数,假如此时对一个不是4倍数的地址a进行解引用 (int *) a,就可能会出现总线错误,这个出现的情况还要具体看是哪一种操作系统。总线错误一般不会出现,出现的情况多半是使用了指针的强制转换。

  有了以上分析就能在遇到这些问题时有处理的思路了。

以上内容原文博客地址:http://www.cnblogs.com/xpray/p/3491186.html

关于 Mac OS系统中编程时出现的segment error 和bus error原因描述相关推荐

  1. 如何在苹果Mac OS系统中安装MT4电脑版软件?

    很多投资者可能已经发现了,当前市面上绝大部分的正规交易平台,都在使用MT4电脑版软件作为平台专用的交易工具.而市面上的电脑系统主要又分为微软Windows系统和苹果Mac OS系统,对于微软Windo ...

  2. python怎么换背景_python – 我如何在Mac OS X中编程改变背景?

    从python,如果你已经安装了 appscript(sudo easy_install appscript),你可以简单地做 from appscript import app, mactypes ...

  3. mac安装完python怎么打开-Mac OS系统如何安装python

    Mac OS安装python步骤 如果你使用苹果电脑的 Mac OS 系统,下载时,请进入 https://www.python.org/页面,选择Downloads,在弹出的菜单中选择Mac OS ...

  4. 黑苹果更改时间命令_从命令行设置Mac OS X中的系统时间 | MOS86

    默认情况下,Mac OS X中的时钟自动设置,但如果要设置精确时间或正在寻找命令行解决方案来设置系统时间,则可以使用名为ntpdate的工具或标准日期命令来执行此操作. 在Mac OS X中使用中央时 ...

  5. 用U盘在Mac OS X中安装Windows7系统

    原文:http://pc.it168.com/a2012/0207/1308/000001308319_1.shtml [IT168 应用]有苹果电脑的用户希望在Mac OS X系统安装Windows ...

  6. Mac OS X 中的脚本语言应用

    http://www.applesupport.com.cn/newshow.asp?id=2442&cid=7 如你所见,Mac OS X 是一套广受程序员喜爱的操作系统,他们之所以如此喜欢 ...

  7. MAC OS X 技术内幕 学习笔记之四 MAC OS系统的启动引导

    MAC OS X 技术内幕 学习笔记之四 MAC OS系统的启动引导 MAC OS的启动非常快,同样的运行硬件环境,运行MAC系统感觉比运行windows系统要快不少.在使用笔记本时,同样的电池容量, ...

  8. 在Mac OS X中配置Apache + PHP + MySQL

    内容如下: 1. 启动Apache 2. 设置虚拟主机 3. 运行PHP  4. 安装MySQL  5. 使用phpMyAdmin  6. 配置PHP的MCrypt扩展库 7. GD库安装 8. 增加 ...

  9. mac 不能连接wi-fi_如何在Mac OS X中查看当前的Wi-Fi连接速度

    mac 不能连接wi-fi Ever since I've been using my new MacBook Air, I've been befuddled by how to do some o ...

  10. 三星笔记本电脑怎么恢复出厂设置_Mac OS如何恢复出厂设置?安装Mac OS系统教程...

    Mac怎么恢复出厂设置?苹果Mac电脑系统一直以稳定安全著称,但有时候Mac OS也会由于某些原因出现运行缓慢.系统崩溃或无法正常启动等的情况,这时候就需要我们重新恢复Mac OS 系统了,今天小编就 ...

最新文章

  1. POJ2352:Stars——题解
  2. MyBatis参数传入集合之foreach动态sql
  3. Navicat安装激活
  4. EtherCAT 网站链接
  5. 完整机器学习项目的流程
  6. 前端学习(2344):打包和部署
  7. 新泽西州男子因无牌运营比特币交易所或面临5年监禁
  8. struts2.0+spring intercepter 不能注入属性
  9. 负载均衡策略_策略路由在多线出口分流和负载均衡中的精妙应用
  10. python可以做什么工作-Python可以做什么工作?Python有哪些方向?
  11. LINUX下载并编译javasqlite
  12. STC学习:红外测试
  13. Activiti工作流程详解
  14. 仿9GAG制作过程(四)
  15. C/C++编写Windows窗口应用程序(Win32程序),非黑漆漆的控制台窗口
  16. docker网络原理及cgroup
  17. java实现Runnable接口启动线程
  18. element-ui的走马灯详解
  19. TOGAF企业架构的主要内容——上海信息化培训中心
  20. 小米android系统分享,重温的手机分享 篇一:90hz高刷?45w快充?双扬声器?你不知道的酷安重制版小米9魔改教程...

热门文章

  1. SMC 如何下载三维及二维图
  2. 【软件设计师考试】《软件设计师教程》(一)
  3. ESP-Tuning Tool 使用手册
  4. 华为数据中心产品汇总介绍
  5. windows配置端口映射
  6. DataParallel使用
  7. 我写的万年历插件(含天干地支,农历,阳历,节气,各种节假日等),基于MooTools 1.4...
  8. ThinkPad T14 Gen3拆机更换升级内存和固态硬盘
  9. spssχ2检验_SPSS教程:分层卡方检验(CMH检验)
  10. Linux系统死亡之ping,linux下防止syn***,端口扫描和死亡之ping