QString和Qt的很多数据结构都是隐式共享的
我怎么才能让他们的内存泄露呢?
循环依赖会导致内存泄漏,如果是shared_ptr,Qt中的QString和其他类似QString的数据结构是否也会泄漏?我想知道如何让QString的内存泄露,这样我就不会掉进它的陷阱了。
经过一些研究,当循环依赖是QString时,看起来我不需要担心它?多亏了你的回复,现在我不用担心了。
发布于 2012-12-13 22:13:10
在Qt 4之前的版本中,对共享相同数据的QString的两个副本的并发访问可能会导致问题,因为QString是COW,但没有锁定引用计数。这是一个难题。从版本4开始,引用计数是使用atomics处理的,这解决了这个问题。你可以通过在一些Qt容器中放置一些可以抛出奇怪地方的东西来破坏它们,但是我想不出会影响QString的方法。要警惕Qt中的异常处理,文档中的相当模糊,这通常意味着要小心;)
http://doc-snapshot.qt-project.org/4.8/exceptionsafety.html
如果你在运行Qt时耗尽了内存,期待世界末日的到来,在这种情况下,QString是否泄漏可能并不重要。
https://stackoverflow.com/questions/13219350
复制相似问题