【发布时间】:2011-12-18 08:53:58
【问题描述】:
我读到在 Unix 系统上,malloc 可以返回一个非 NULL 指针,即使内存实际上不可用,并且稍后尝试使用内存会触发错误。由于我无法通过检查 NULL 来捕获这样的错误,我想知道检查 NULL 到底有多大用处?
在相关的说明中,Herb Sutter 说处理 C++ 内存错误是徒劳的,因为系统会在异常实际发生之前很久就进入分页痉挛状态。这是否也适用于malloc?
【问题讨论】:
-
我认为你不应该在 C++ 中使用 malloc :stackoverflow.com/questions/184537/…
-
@lc2817 只有在使用 C 接口编写代码时才应该使用 malloc(即,要从 C 中使用但用 C++ 编写的函数)和 C 代码负责释放该内存。
-
@WTP 感谢您的精确度。虽然,我不知道这里是不是这样。
-
@Dror K.,我不明白赏金的目的,快速谷歌搜索没有帮助。该问题已经有了答案,是否意味着您正在寻找另一个改进的答案?
-
@gsamaras 您好,我选择了表明现有答案值得赏金的选项。所以你的问题的答案是我想奖励一个现有的答案,我不是在寻找新的答案。
标签: c memory error-handling malloc