c++ - 堆栈展开后的指针有效性

标签 c++ pointers stack stack-unwinding

在 C++ 中,指针在堆栈展开后是否仍然有效?

最佳答案

这取决于指向对象的存储。如果该对象是堆栈分配的,那么指针肯定会变得无效 - 堆栈展开将正确地销毁该对象。如果对象是堆分配的,则仅当存在一些 RAII 变量在堆栈展开期间释放对象时,指针才会变得无效。

关于c++ - 堆栈展开后的指针有效性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5776868/

相关文章:

c++ - 更简洁代码的嵌套命名空间

C++如何将关键字 'friend'与来自两个类的成员函数一起使用相互包含

c++ - 队列 C++ 的运算符重载

c++ - 获取非专用 std::vector<bool> 容器的标准方法

c++ - 我需要释放推力返回的 device_ptr 吗?

c++ - 在c++中Ptr<> a代表什么?

c - 使用堆栈将中缀表示法转换为后缀表示法

linux - 如何在 Ubuntu11.04 中使用 NASM 维护堆栈

c - 使用++增加数组指针

c - 为什么我不能将位域声明为自动变量?