出现段错误的常见原因与解决方案(一步解决)

简介: 出现段错误的常见原因与解决方案(一步解决)

目录


常见原因

解决方案

方法1

方法2


正文


常见原因


段错误最常出现在指针运用不当,其具体原因有但不限于:指针指向了不存在的地方(非法的内存访问),给野指针赋值,遍历指针超过本身节点等


解决方案


方法1


           printf("11\n");

          代码块 (1)

           printf("22\n");

           代码块(2)

           在运行调试的时候,调试如果能够输出11,但是不能输出22,说明

           代码块(1)有问题。如果22也能输出,就说代码块(2)有问题。


方法2


 加打印,先定位到段错误发生的位置,然后才分析代码。

printf("%s %d\n",__FUNCTION__,__LINE__);

           __FUNCTION__:编译器的宏,表示当前函数的名字,字符串

           __LINE__:编译器的宏, 表示当前的行数 ,int

相关文章
|
6月前
|
监控 NoSQL Linux
深入Linux内存泄漏排查:Valgrind与系统工具的联合应用
深入Linux内存泄漏排查:Valgrind与系统工具的联合应用
873 0
|
6月前
|
算法 安全
程序崩溃与优化
程序崩溃与优化
58 0
|
6月前
|
NoSQL 小程序 C语言
GDB调试学习(四):段错误
GDB调试学习(四):段错误
153 0
|
存储 缓存 Linux
linux下定位多线程内存越界问题实践总结
linux下定位多线程内存越界问题实践总结
|
6月前
|
Linux C语言
排查Linux下C语言句柄打开太多的问题
排查Linux下C语言句柄打开太多的问题
68 0
|
NoSQL Linux Go
一次linux中定位c++程序运行异常的经历
一次linux中定位c++程序运行异常的经历
一次linux中定位c++程序运行异常的经历
段错误(核心已转储)问题的分析方法(未成功)
段错误(核心已转储)问题的分析方法(未成功)
260 0
|
NoSQL Linux C语言
Linux环境下段错误的产生原因及调试方法小结
最近在Linux环境下做C语言项目,由于是在一个原有项目基础之上进行二次开发,而且项目工程庞大复杂,出现了不少问题,其中遇到最多、花费时间最长的问题就是著名的“段错误”(Segmentation Fault)。
1100 0