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

前端之家收集整理的这篇文章主要介绍了我可以在C中看到错误的指针错误吗?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想知道是否有可能在C中捕获这样的错误
object* p = new object;

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

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

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

解决方法

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

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

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

猜你在找的C&C++相关文章