使用QLabel的QList时程序崩溃

时间:2016-02-14 16:37:19

标签: c++ qt qlabel

按下按钮,我打开了一个窗口。 在这个窗口中,我创建了一个38 QLabel的QList:QList<QLabel*> Nombres;我分配了它:

for(int i = 0; i <= 38; i++) { Nombres.push_back(new QLabel(QString::number(i))); }

但是当我打开窗口时,程序有时会崩溃,有时候却没有。有时,当我关上窗户时,它会崩溃。这是随机的。

我尝试使用表而不是使用QLabel但是存在同样的问题

程序因错误而崩溃:损坏的双链表:0x00000000019499b0 ***

任何解决方案?

1 个答案:

答案 0 :(得分:-2)

问题可能是指针在其他地方被删除了。您的代码没有特别的错误,但它是内存分配管理不佳的一个例子。

编辑:在C ++中,你必须知道谁拥有所有指针。某些功能具有所有权,例如将QLabel指针添加到QDialog。你不能两次给同一个物体。一旦为对话框提供了数字标签,就不会拥有它。如果你给它两次(在你的例子中将相同的QLabel放在任何对话框上两次),它将被删除两次,导致未定义的行为和崩溃。