【发布时间】:2010-06-18 07:36:34
【问题描述】:
我想知道是否有可能在 C++ 中捕获这样的错误:
object* p = new object;
delete p;
delete p; // This would cause an error, can I catch this?
- 能否检查指针是否有效?
- 我能捕捉到一些异常吗?
我知道我可以在第一次删除对象后将指针 p 设置为 NULL。但想象一下你不会那样做。
【问题讨论】:
-
问题不在于如何从此类错误中恢复,问题在于如何不首先制造它们。 (设置指向
NULL的指针也是如此。为什么作用域中的指针不指向某物?)C++ 带有许多阻止您手动管理指针(和其他资源)的结构。在做 C++ 的最后十年里,我很少需要手动delete任何东西。 -
@Job 你是对的 - 应该提取参考。
标签: c++ pointers memory-management