段错产生原因及调试技巧

产生段错误是因为访问了不该访问的空间,比如:

1、对空指针(指向地址为NULL的指针)进行操作。
2、对野指针(未被初始化的指针)进行操作。
3、数组越界。
4、用指针对数组进行操作,指针偏移到了数组长度之外。
5、对只读空间进行操作,比如,操作.rodata空间区域,字符串常量(如字符串"hello")便是存储在该区域。

在用c语言写代码过程中,稍不留意就会产生段错误,遇到这种情况如何快速定位到问题地方,这里有一个小技巧。
将出问题的地方打印出来。具体代码如下:

printf("%s  %d",_FUNCTION_,_LINE_);

语句中:
_FUNCTION_ 是编译器的宏,表示当前函数的名字。
_LINE_ 也是编译器的宏,表示当前的行数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

奇晓迹

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值