malloc后是否判断返回值为null?

在malloc后判断返回值是否是null的,纯属“用心不是地方”,假如是null,你怎么做?

写出高质量的软件(特别是工业软件),不判断malloc返回值是不负责任的。,==在任何时候,你能检测到问题,但却置于不顾都是不负责任的。==

你必须在任何时候尽量保证你的软件控制的设备处于一种安全的状态,第一次malloc失败还远远没到完全没有办法的时候。举个例子,你的软件在控制一架电梯(只是举例,实际上,在这种程序中肯定不允许使用malloc的)。按照故障等级制定应急措施,假如malloc失败发生在无关紧要的模块上,可能导致一个三级故障,发生在核心模块上,可能导致一个一级故障,不同故障等级采取的方式是不一样的。

三级故障,你可能允许电梯停到最近的一层,打开门,然后发出故障报警并停止工作,一级故障你可能需要电梯立即停止。但无论如何不是置于不顾。malloc失败问题最简单的几种处理方法:

  1. 放弃当前操作,执行其它不消耗堆内存的应急处理方案;
  2. 预先申请应急内存(足够故障处理代码使用),在malloc失败后,释放它,并立即执行故障处理程序;
  3. 更紧急的情况下,可以释放很多非核心的存储,甚至直接使用某些已分配空间给应急程序使用。
  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值