首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何利用QString和其他Qt隐式共享数据结构产生内存泄漏

如何利用QString和其他Qt隐式共享数据结构产生内存泄漏
EN

Stack Overflow用户
提问于 2012-11-04 22:21:02
回答 1查看 1.4K关注 0票数 0

QString和Qt的很多数据结构都是隐式共享的

我怎么才能让他们的内存泄露呢?

循环依赖会导致内存泄漏,如果是shared_ptr,Qt中的QString和其他类似QString的数据结构是否也会泄漏?我想知道如何让QString的内存泄露,这样我就不会掉进它的陷阱了。

经过一些研究,当循环依赖是QString时,看起来我不需要担心它?多亏了你的回复,现在我不用担心了。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 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是否泄漏可能并不重要。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13219350

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档