微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

我可以在C中看到错误的指针错误吗?

我想知道是否有可能在C中捕获这样的错误
object* p = new object;

delete p;
delete p; // This would cause an error,can I catch this?

>我可以检查指针是否有效?
>我可以抓住一些例外吗?

我知道我可以在第一个对象删除后将指针p设置为NULL.但只是想象你不会这样做.

解决方法

我不认为你可以抓住这种错误,因为我认为结果是未定义的行为.它可能什么都不做,它可能会崩溃,它可能只是损坏内存,并导致一个问题在后面的一行.

如果您发现它使用当前的编译器执行某些特定操作,那么可以尝试并处理这些编译器,但它可能会在调试和释放中执行不同的操作,并且在升级编译器版本时会再次出现.

建议将指针设置为null,但我认为您最好使用智能指针,而不是删除它们.

原文地址:https://www.jb51.cc/c/111755.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐