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

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

目录


常见原因

解决方案

方法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与系统工具的联合应用
832 0
|
6月前
|
算法 安全
程序崩溃与优化
程序崩溃与优化
57 0
|
6月前
|
NoSQL 小程序 C语言
GDB调试学习(四):段错误
GDB调试学习(四):段错误
144 0
|
11月前
|
Python
pwn06(关于64位程序堆栈平衡的处理)
pwn06(关于64位程序堆栈平衡的处理)
172 0
|
NoSQL Linux Go
一次linux中定位c++程序运行异常的经历
一次linux中定位c++程序运行异常的经历
一次linux中定位c++程序运行异常的经历
段错误(核心已转储)问题的分析方法(未成功)
段错误(核心已转储)问题的分析方法(未成功)
257 0
|
运维 Linux 开发者
Kernel SIG直播:让人头疼的“内核内存被改”和“内存泄露”怎么解?|第13期
内存发生故障问题让你抓狂?明天(周三)将有效地解决线上内核内存被改和内存泄露这两大难题。
Kernel SIG直播:让人头疼的“内核内存被改”和“内存泄露”怎么解?|第13期
|
缓存 安全 测试技术
|
缓存 开发框架 小程序
Rax 小程序运行时方案解密与思考
目前,小程序开发仍然没有所谓的银弹,也许 Rax 小程序双引擎的融合会是一个相对范围内的最优解。
Rax 小程序运行时方案解密与思考