【发布时间】:2011-12-17 22:10:31
【问题描述】:
我见过很多代码在分配时检查 NULL 指针。这使得代码冗长,如果没有一致地完成,只有当程序员喜欢它时,甚至不能确保当地址空间用完时程序不会崩溃。此外,如果程序不能进行更多的分配,它无论如何也无法完成它的功能,对吧?
所以我的问题是,对于大多数程序来说,根本不检查,如果内存用完就让程序崩溃不是更好吗?至少这样代码更易读。
注意
我说的是在现代计算机上运行的桌面应用程序(至少 2 GB 地址空间),而且绝对不会运行航天飞机、生命支持系统或 BP 的石油平台。最重要的是,我说的是使用 malloc 但内存使用量从未真正超过 5 MB 的程序。
【问题讨论】:
-
您应该如何知道程序崩溃的原因?是 NULL 指针取消引用还是一些微妙的东西?
-
是的,让我们都忘记检查内存是否已成功分配。段错误更有趣!
-
检查
malloc回报的倡导者中,有谁见过它在托管环境中触发?我真的很想知道这仍然有意义的情况。 -
@Jens:这是有道理的,因为这样做不会造成任何损失,而且有一天它可以防止太空火箭爆炸,杀死机上八名宇航员。
-
@TomalakGeret'kal,“托管”与“嵌入”是 C 标准中的精确术语,描述了应用程序可以从 C 库中获得的支持量。
标签: c error-handling malloc