【问题标题】:qt malloc(): smallbin double linked list corruptedqt malloc(): smallbin 双链表损坏
【发布时间】:2013-05-06 08:32:06
【问题描述】:

在我的 Qt 小部件中,我有时会收到此错误:

malloc(): smallbin double linked list corrupted

它不会一直发生,但我想我已经把它缩小到它开始的时候。

我有一个 QGraphicsView 和 QGraphicsScene,我正在画线,其点存储在一个向量中。这样做的原因是我需要将此点传递给另一个库。一旦我绘制了点,如果我点击一条线,我就会有一个选项,我会被提示到另一个窗口,我可以在其中更改一条线的坐标。

ResizeDialog *dialog = new ResizeDialog(this);
dialog->exec();
delete dialog;

上面的代码是我用来打开一个新的QDialog的代码。我知道如果我使用this->close() qt malloc(): smallbin 双链表损坏没有出现,但是我丢失了 QGraphicsView 的实例。如果我需要选择添加更多行,我需要保持 QGraphicsView 窗口打开的原因。

任何关于如何消除此问题的建议都会有所帮助。

【问题讨论】:

  • 哪个版本的qt???
  • 我正在使用 Q4
  • 你能提供更精确的版本吗?错误在哪里报告?再次,更精确
  • Qt 4.7.3 是我的版本。错误只是有时会发生。我现在无法得到它。但是一旦发生它就不会消失,除非我使用 this->close();
  • qt-project.org/doc/qt-4.8/qobject.html#dtor.QObject - 那里的原始删除是可疑的。

标签: qt malloc


【解决方案1】:

不要使用delete dialog;,而是使用dialog->deleteLater();。我假设小代码部分位于“this”引用的对象的插槽内,直接删除是麻烦的根源,因为ResizeDialog *dialog = new ResizeDialog(this); 会影响父对象this

【讨论】:

  • 我已经尝试过了,但我仍然收到错误消息!还有什么我应该考虑的吗?
猜你喜欢
  • 1970-01-01
  • 2016-01-01
  • 2013-11-01
  • 2015-09-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-10-04
  • 2016-07-01
相关资源
最近更新 更多