C++ QString::free()中的核心

C++ QString::free()中的核心,c++,qt,core,qstring,C++,Qt,Core,Qstring,为什么QString::free()会成为核心?堆栈跟踪如下所示: #0 in ... #1 in ... #2 in ... #3 in ... #4 in ... #5 <signal handler called> #6 in _int_free() #7 in QFree(void*) #8 in QString::free(QString::Data*) #9 in myClass::myMethod(int) #0英寸。。。 #1英寸。。。 #2英寸。。。 #3英寸。。

为什么QString::free()会成为核心?堆栈跟踪如下所示:

#0 in ...
#1 in ...
#2 in ...
#3 in ...
#4 in ...
#5 <signal handler called>
#6 in _int_free()
#7 in QFree(void*)
#8 in QString::free(QString::Data*)
#9 in myClass::myMethod(int)
#0英寸。。。
#1英寸。。。
#2英寸。。。
#3英寸。。。
#4英寸。。。
#5 
#6英寸(无内部)
#7英寸QFree(无效*)
#8英寸QString::free(QString::Data*)
#myClass::myMethod(int)中的9
myMethod()通过将文字文本(每个文本不同)附加到从QMap获取的另一个QString(相同的映射,不同的字段),将文本设置为六个QString。根据字符串的值,QMap可以使用QStrings myMethod进行更新,也可以不使用QStrings myMethod进行更新


这个问题让我想起了我在使用QMap时遇到的浅拷贝问题。我的Q字符串是否也有可能被浅拷贝?

请发布您的代码,最好是一个。这可能是由各种内存管理问题造成的。最简单的情况可能是双重删除
QString
对象。如果正确使用类,浅层复制将永远不会导致错误。这可能是堆损坏的结果。如果您可以在Linux下编译该程序,请尝试在valgrind下运行它,这可能会指示发生损坏的位置。