C程序EMT trap的解决方案

     在C的开发中,经常会遇到EMT trap的情况,小弟刚开始的时候也是这样。遇到这样的问题老是摸不着头脑,不知道什么地方错了。

    其实EMT trap一般都是数组越界、指针空间不够、以及内存溢出等情况造成的,我们只需要找出这些地方,并控制数组长度、指针申请的空间等就可以解决了,这边给大家也给自己记下几种解决方案:

1、加打印语句法:加打印信息,从出现EMT trap 的前面一条打印语句开始向后,在你认为可能会出现问题的地方加上相应的打印语句,以此类推,直到找到问题所在位置;然后对你不确定的变量逐一检查,增加数组长度、扩大指针内存等等,一般就可以找出问题所在了

2、注释法:找到EMT trap最近的一条打印语句,注释掉认为可能出现问题的代码,一段一段的注释直到找到问题所在

3、加#if 0法:2中是把可能出现问题的代码注释,这里可以用#if 0来不运行,原理是一样的,如:

#if 0
release code
#else
debug code
#endif

 

    说到底,EMT trap是对内存的管理不当造成的,只要大家在编程多留心,如在malloc的同时在下面写上free,这样就最大程度上预防忘记释放内存的事发生了。如果大家有什么意见,请直接联系我。

    由于个人技术水平有限,文章中会有错误,请大牛们,批评指正,防止误导其他人啊,谢谢。。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值