程序在使用 QLabel 的 QList 时崩溃
Program crashes when using QList of QLabel
我做了一个通过按下按钮打开的窗口。在这个窗口中,我创建了一个包含 38 个 QLabels的 QList: QList<QLabel*> Nombres;
我像这样分配它:
for(int i = 0; i <= 38; i++)
{
Nombres.push_back(new QLabel(QString::number(i)));
}
但是当我打开窗口时,有时程序会崩溃,有时不会。有时,当我关闭窗口时,它会崩溃。这是随机的。
我尝试使用表格而不是使用 QLabels,但存在同样的问题
程序崩溃并显示错误:双链表损坏:0x00000000019499b0***
任何解决方案?
问题可能是指针在其他地方被删除。 您的代码没有特别的错误,但它是内存分配管理不佳的一个示例。
编辑:在C++中,您必须知道谁拥有所有指针。一些函数获得所有权,例如将QLabel指针添加到QDialog。你不能两次赠送同一个对象。 为对话框提供数字标签后,您就不拥有它。 如果您放弃它两次(在您的示例中将相同的 QLabel 放在任何对话框中两次(,它将被删除两次,从而导致未定义的行为和崩溃。
相关文章:
- 当回溯以零开始时,如何调试崩溃
- 内联映射初始化的动态atexit析构函数崩溃
- 执行函数时导致崩溃的变量
- 程序崩溃并显示"std::out_of_range"错误
- CoInitialize()在单独的线程上崩溃而不返回
- 使用调试/崩溃报告将应用程序部署到客户端
- 为什么所有C++编译器都会崩溃或挂起此代码
- 为什么lambda在clang上崩溃而不是在gcc上崩溃
- 为什么我的多线程作业队列崩溃
- ExtractIconEx:可以工作,但偶尔会崩溃
- 如何检查QList中是否存在值
- 为什么引用传递会导致此崩溃(C++)
- 试图创建流或fopen时程序崩溃
- 类对象数组的问题会导致崩溃
- 为什么 std::sort 在使用 QList 时崩溃?
- 当删除上下文属性中的QLIST对象时,QT QML应用程序崩溃
- Qt 4.8.4 QList在Apple LLVM下的奇怪崩溃
- QT/QML c++ 程序在从 QML 访问 QList 时崩溃
- 程序在使用 QLabel 的 QList 时崩溃
- Qt 两个 QList 成员变量导致崩溃