![]() |
1
4
这里的问题是,返回的指针不是指向集合中的对象或分配的指针,而是指向退出函数时被破坏的函数本地对象。
复制每个
这样,当您返回一个指针时,您就是在返回一个指向位于中的对象的指针
请注意,如果你找到一个对象,你也会有内存泄漏,因为你从未解除分配
就我个人而言,我会将函数重构为
现在,您要么返回一个指向有效对象的指针,要么返回空指针。您可以在呼叫站点轻松检查,并且没有手动内存管理,也没有办法导致泄漏。您只需要确保在调用函数后始终检查空指针结果。 |
![]() |
2
0
这个函数有很多错误。其中一部分使用非托管/哑指针,另一部分使用
也许根本问题在于
那么,简单的解决方法就是使用一组智能指针。这会解决你的大部分问题——好吧,除了
|
![]() |
CocoaMix86 · 变量超出作用域后未回收内存[重复] 6 月前 |
![]() |
Yousef Dawood · javascript中的不变性是什么意思 12 月前 |
![]() |
SkyBlue · Java Spring服务的内存/垃圾收集器问题 1 年前 |