【发布时间】:2010-12-28 19:39:15
【问题描述】:
我经常发现自己在做以下事情(在非关键组件中):
some_small_struct *ptr=(some_small_struct *) malloc(sizeof(some_small_struct));
ptr->some_member= ...;
换句话说,我为一个小结构动态分配内存,我直接使用它而不检查 malloc'ed 指针。我知道程序总是有可能无法获得它要求的内存(呃!),但请考虑以下几点:
如果程序甚至无法从 堆,也许还有更大的问题迫在眉睫,毕竟没关系。
此外,如果处理空指针更加恶化了不稳定的情况怎么办? (例如,尝试记录条件调用甚至更多不存在的资源等)
我的推理是否理智(足够)?
更新:
- “safe_malloc”函数在调试时很有用,在其他情况下也很有用
-
+X访问可以隐藏 NULL 指针的根本原因 - 在 Linux 上,“乐观内存分配”会影响 OOM(内存不足)情况
【问题讨论】:
-
最佳实践意味着所有系统的强度和稳定性。应用它们取决于我们。
-
找到一个相关问题(我喜欢 Reed Copsey 的贡献):stackoverflow.com/questions/691402/…
标签: c architecture system