如果您执行以下操作:
ClassType *foo = new ClassType();
ClassType *moo = foo;
delete foo;
再往前走,还有悬空指针吗?我想没有,因为你只声明了一个“新的”,然后删除了它,但我想确定......
谢谢
最佳答案
您创建了一个对象并将其删除。 您的两个指针仍然指向该对象先前占用的内存地址,但是该对象已被删除,通常这是悬空指针的公认定义-指向不再包含事件对象的某些内存。
没有内存泄漏,您的程序也不会导致问题除非您尝试通过任一指针访问现在已删除的对象。
使用 std::shared_ptr 或 std::unique_ptr 之类的东西可以帮助您以更安全的方式管理内存。
关于c++ - 删除后哪些指针悬空?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12313279/