科锐课堂笔记:2017/3/25 资源分配释放规定

  在定义一个资源变量标识时,应赋予初始表分配失败的错误值(如常见的NULL)。
  每次向系统申请资源或调用功能接口时,判断其错误处理,如结果失败goto跳转到函数末尾将对程序当前获取的所有资源进行统一释放。
  函数末尾返回前,有一段代码将依次释放所有已分配或占有的设备资源,释放前应先判断变量是否有效,释放后标记资源变量为无效值。这条规则同样适用于任何时候对资源的释放。这样做的好处,一来只对已分配拥有的资源进行清理释放,同一资源不会重复释放,二变量能正确反映资源状态,不存在野指针这种情况。
  统一释放时应按分配的逆顺释放,如时间上先分配资源了A、B、C、D,那么集中释放资源时的顺序则为D、C、B、A,从依赖关系结构上来说,前者一定不依赖后者,而后者有可能对前者存在某种关系。


  典型的free释放的安全宏定义如下:
  #define SAFE_FREE(p) if(p){free(p);p=NULL;}

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值