我需要实例化并附加到指向我的对象的指针的QVector
我的标题说
QVector<Stuff*> myResults;
通过评论内容,我将其缩小到我对QVector的使用
1)当我尝试
时 myResults.append(stuff);
2)当我尝试
时 myResults.push_back(stuff);
我得到了
First-chance exception at 0x00007FF652523520 in LibTestd.exe: 0xC0000005: Access violation reading location 0x0000000000000030.
我已经复制并粘贴了不同的方法来实例化我的qvector无济于事。包括来自doc.qt.io的示例,其中包含0和50
QVector<Stuff> vector(0);
我试过让QVector中的类类型不是指针和解引用的东西。
我真的不知道出了什么问题,但我确信这与我滥用指针有关。有人可以给任何......指针吗? :P
顺便说一句,如果它是相关的,那么东西翻译单元(我的意思是,同名的Stuff.h和Stuff.cpp文件(名称是翻译单位?))< / em>中有两个类,Crap类和Stuff类,Stuff不存在垃圾。我的构造函数中有初始化列表。同样顺便说一句,我实例化了这样的内容Stuff * stuff = new Stuff()
答案 0 :(得分:0)
如果没有剩下的代码,很难提供帮助,但是。:
QVector
不会对其给定的数据进行处理,因此请在执行时检查myResults
变量的有效性。
是的,我知道它不是一个指针,而是一个类级变量,仍然检查它,特别是如果你在可能运行你的对象的析构函数的任何线程上使用processEvents()
(或等效的)。
如果您发现myResults
变量无效(指向0xfeeefeee +在调试版本中稍微多一点,和/或在&#34;无法读取&#34;内存,请检查是否有析构函数对象在访问冲突之前运行。
对于Qt使用processEvents()
的ppl new或甚至新手来说很常见,并且不会重新考虑导致其对象被破坏的插槽可能会在processEvents()调用期间运行。
答案 1 :(得分:0)
超级大规模的金发时刻&gt;。&gt; 创建尝试使用Qvector的类的类...我很想忘了实例化它..... *让我感到困惑的是多久这让我很困惑* 但是耶!新问题被迷惑了!还有其他问题。