gpt4 book ai didi

c++ - 头文件中的 QList 声明导致源文件中出现段错误

转载 作者:行者123 更新时间:2023-11-28 02:45:00 25 4
gpt4 key购买 nike

我遇到了一个很奇怪的问题。它与此处描述的类似:http://www.qtforum.org/article/20389/problems-with-qlist.html .当我在头文件中声明 QList 并尝试在源文件中使用它时,程序因段错误而失败。

这是一个片段:

threads.h 文件:

class Corr2DThread 
{
private:
QList<Sequence *> seqs_;
...
};

threads.cpp 文件:

void Corr2DThread::addSequence(Sequence *seq)
{

QLOGX("Thread " << idx_ << " adding new sequence (" << seqs_.size() << "), name: '" << seq->name() << "'"); //this code fails due to call seqs_.size()
QLOGINC;
int activeCount = seq->activeItems();
Q_ASSERT(activeCount > 0);
QLOG("Contains " << activeCount << " active object images");
seqs_.append(seq);

QLOGDEC;
}

但是,如果我在本地声明 QList,一切正常,如下面的代码所示:

void Corr2DThread::addSequence(Sequence *seq)
{
QList<Sequence *> seqs_;

QLOGX("Thread " << idx_ << " adding new sequence (" << seqs_.size() << "), name: '" << seq->name() << "'");
QLOGINC;
int activeCount = seq->activeItems();
Q_ASSERT(activeCount > 0);
QLOG("Contains " << activeCount << " active object images");
seqs_.append(seq);

QLOGDEC;
}

我花了很多时间试图让这个工作,没有运气/知识。任何 QT 大师都可以解释这里发生了什么?

最佳答案

检查您是否忘记实际创建类实例。接下来,我建议您使用 GDB。 1) gdb 2) set follow-fork-mode child 3) run 4) 你显然会发现你的段错误——输入“bt”来查看回溯。 5) 我高度假设您只是对 Corr2DThread 指针进行操作,而没有将其初始化为构造的 Corr2DThread。

关于c++ - 头文件中的 QList 声明导致源文件中出现段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24713897/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com