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

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

目录


常见原因

解决方案

方法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

相关文章
|
7月前
|
NoSQL 小程序 C语言
GDB调试学习(四):段错误
GDB调试学习(四):段错误
167 0
|
NoSQL C语言
C语言开发过程中段错误处理方法之经典
C语言开发过程中段错误处理方法之经典
189 0
C语言开发过程中段错误处理方法之经典
深入理解计算机系统:内存越界引用和缓冲区溢出
深入理解计算机系统:内存越界引用和缓冲区溢出
143 0
深入理解计算机系统:内存越界引用和缓冲区溢出
内存越界并不等于马上出错
内存越界并不等于马上出错
94 0
使用valgrind检查内存越界
使用valgrind检查内存越界
212 0
段错误(核心已转储)问题的分析方法(未成功)
段错误(核心已转储)问题的分析方法(未成功)
264 0