16.3 “Segmentation violation”“Bus error”

问题:

“Segmentation violation”, “Bus error” 和“General protection fault” 意味着什么?

通常, 这意味着你的程序试图访问不该访问的内存地址, 一般是由于堆栈出错或是不正确的使用指针。

可能的原因有:

局部数组溢出(用堆栈分配的自动变量);

不小心, 用了空指针(参见问题5.2 和5.15)、未初始化指针、地址未对齐的指针或其它没有适当分配的指针(参见问题7.1 和7.2);

malloc 内部被破坏(参见问题7.16);

函数调用参数不匹配, 特别是如果用了指针, 两个可能出错的函数是scanf()(参见问题12.11) 和fprintf() (确定他的第一个参数是FILE *)。

参见问题16.3 和16.4。

永不止步步 发表于01-18 09:53 浏览65535次
分享到:

已有0条评论

暂时还没有回复哟,快来抢沙发吧

添加一条新评论

只有登录用户才能评论,请先登录注册哦!

话题作者

永不止步步
金币:67410个|学分:308317个
立即注册
畅学电子网,带你进入电子开发学习世界
专业电子工程技术学习交流社区,加入畅学一起充电加油吧!

x

畅学电子网订阅号