问题1:在操作过程中指针被释放了

QTreeWidgetItem *treeItem = treeWidget->currentItem(); 被别的类保存了一份(比如一个表格渲染任务保存了当前渲染的 treeItem),在渲染完成后还想要对 treeItem 做一些别的操作,此时 treeWidget 由于某些原因或操作被重新加载了(treeItem 被清除了),但是当前渲染的 treeItem 还要操作(比如获取数据 treeItem.data(xx) data(xx) 内部的某些变量地址就会显示 0xffffffffffxxxxxx)就会引起程序崩溃。

QtProblems-指针变量传参问题

指针变量传参问题-测试例子

QtProblems-指针变量传参问题-测试例子

操作顺序:btn1 -> btn2 -> btn1 -> btn3

当再次按下 btn1 后,重新加载树控件数据,此时 m_item 已经被释放了。
btn3 操作里用到了已经被释放的 m_item,从而引起程序崩溃。