-1

我需要实例化并附加到指向我的对象的指针的 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 文件(是翻译单元的名称吗?))有两个类,Crap 类和 Stuff 类, 东西不能没有废话。我的构造函数中有这样的初始化列表。

顺便说一句,我实例化这样的东西Stuff * stuff = new Stuff()

4

2 回答 2

0

如果没有其余的代码,很难提供帮助,但是:

QVector不尊重其给定的数据,因此myResults在执行时检查变量的有效性。

是的,我知道它不是一个指针,而是一个类级变量,仍然检查它,特别是如果您processEvents()在任何可能运行对象析构函数的线程上使用(或等效)。

如果您发现myResults变量无效(在调试版本中指向 0xfeeefeee + 更多,和/或在“无法读取”内存中,请检查对象的析构函数是否在访问冲突之前运行。

ppl new 甚至 Qt 新手使用processEvents()并且不会重新考虑导致其对象破坏的插槽可能会在 processEvents() 调用期间运行是很常见的。

于 2015-12-08T17:11:14.340 回答
0

超级巨大的金发时刻>.>创建尝试使用Qvector的类的类......我aummm,忘记实例化它...... *羞愧地隐藏了多久这让我感到困惑*但是是的!令人困惑的新问题!还有其他问题。

于 2015-12-10T07:51:00.107 回答