什么是段错误?
一旦一个程序访问了不可访问的内存,(这个内存区可能是不存在的,或者是是受到系统保护的,或者是缺少文件或文件损坏。)
cpu 就会产生相应的保护,就会报错segmentation fault
解决方法(伪)
出现段错误时,首先应该想到段错误的定义,从它出发考虑引发错误的原因。
在使用指针时:
定义后:记得初始化指针
使用时:记得判断是否为 NULL
在使用数组时:
注意数组是否被初始化
注意数组下标是否越界
注意数组元素是否存在
在访问变量,注意变量所占地址空间是否已经被程序释放掉
在处理变量时,注意变量的格式控制是否合理等
常见产生原因
创建了空指针,试图访问它的值
非关联化一个空指针,然后分配(写一个值到一个不存在的目标)
即:
malloc 动态分配内存,释放、置空完成后,再使用该指针。
比如: