什么是segmentation fault?
来源:互联网 发布:阿里云中的cdn加速 编辑:程序博客网 时间:2024/06/03 23:50
Segmentation fault这种错误,通常是由于访问了"不属于你"的内存引起的。这种帮助机制防止你把内存搞得一团糟以及引入难以调试的Bugs。每当你看到segfault提示的时候,你应该知道你错误的访问了内存——比如访问已经释放的变量,写数据到内存的只读部分,等等。在大多数可能搞乱内存的语言中,segfault基本是一样的,在C和C++中没有什么大不同。
至少在C(++)这种底层语言中,有多种方法可以导致segfault的提示。
① 一种常见的导致提示segfault方法是访问空指针指向内存的值。
int *p = NULL;*p = 1;
② 另一种提示segfault的情况是,你向只读内存中写数据。
char *str = "Foo"; // 编译器认为常量字符串是只读的*str = 'b'; // 所以这行语句非法,从而提示segfault
③ 以及悬垂指针指向一个不再存在的变量,如下所示:
char *p = NULL;{ char c; p = &c;}// 现在p是悬垂的了
p变成了悬垂指针,因为它指向了一个花括号之外就不存在的变量c。而且当你给这个悬垂指针指向的内存赋值(如 *p='A')时,你很可能得到一个segfault的提示。原文:http://stackoverflow.com/questions/2346806/what-is-segmentation-fault
0 0
- 什么是segmentation fault?
- 什么是Segmentation fault(Core Dump)
- 什么是Segmentation fault(Core Dump)?
- 什么是Segmentation fault(Core Dump)?
- Segmentation Fault
- Segmentation Fault
- Segmentation fault
- SEGMENTATION FAULT
- Segmentation fault
- segmentation fault
- segmentation fault
- segmentation fault
- segmentation fault
- segmentation fault
- segmentation fault
- segmentation fault
- Segmentation fault
- segmentation fault
- 从文本中统计字符权重并依次构建huffman树
- 算法与数据结构简介
- Lua 安装
- Linux认证考试
- Qt下使用OpenGL(19)-根据NeHe的教程改写的
- 什么是segmentation fault?
- 2014浙江省赛总结
- ceph的CRUSH数据分布算法介绍
- SouceInsight的几个窗口弄的还原不了
- OSX上使用tinc的问题
- hunnu11326(基础凸包题,求凸包的点个数,和凸包顶点)
- 设计模式之策略
- Android ExpandableListView (二级列表)
- Tutorials for The 10th SWJTU Collegiate Programming Contest - Online Round