我在Unix系统上读到,即使内存实际上不可用,malloc
也可以返回一个非空指针,稍后尝试使用内存将会触发错误。因为我不能通过检查NULL来捕获这样的错误,所以我想知道检查NULL到底有多有用?
在相关的注释中,Herb Sutter说处理C++内存错误是徒劳的,因为系统在异常实际发生之前很久就会进入分页的痉挛状态。这也适用于malloc
吗?
发布于 2011-10-31 05:27:36
要从另一个角度来看待这一点:
“即使内存实际上不可用,malloc
也可以返回非空指针”并不意味着它总是返回非空指针。可能(也将会)有返回NULL的情况(就像其他人已经说过的那样),所以这个检查仍然是必要的。
https://stackoverflow.com/questions/7947849
复制相似问题