Qt问题-指针变量传参问题
问题1:在操作过程中指针被释放了
QTreeWidgetItem *treeItem = treeWidget->currentItem();
被别的类保存了一份(比如一个表格渲染任务保存了当前渲染的 treeItem),在渲染完成后还想要对 treeItem 做一些别的操作,此时 treeWidget 由于某些原因或操作被重新加载了(treeItem 被清除了),但是当前渲染的 treeItem 还要操作(比如获取数据 treeItem.data(xx) data(xx) 内部的某些变量地址就会显示 0xffffffffffxxxxxx)就会引起程序崩溃。
指针变量传参问题-测试例子
操作顺序:btn1 -> btn2 -> btn1 -> btn3
当再次按下 btn1 后,重新加载树控件数据,此时 m_item 已经被释放了。
btn3 操作里用到了已经被释放的 m_item,从而引起程序崩溃。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Vinda's Blog!
评论