记录一个错误使用代码导致程序崩溃问题

先记录一笔后续补上 :

大致是  c++ 继承QAbstractListModel 重写自定义model  

该model 内放入 一张表信息, 为 QList<Record> list  存储一张表的所有信息

Record 为一张表的一条记录, 然后 model 中提供一个函数  Record * getRecord(int row)

获取某一行的一条记录,此处错误将 成员里的 list[row] 传递给了界面,导致该块内存的重复释放

Record 在 main.cpp 中 通过 

qmlRegisterType<Record>("uri", 1, 0, "Record "); 注册进qml中提供给界面接收用。 然后界面关闭后主动将该块内存释放了,导致内存的重复释放,

解决办法: 在  Record * getRecord(int row) 中 new Record 一块内存 提供给界面用 

Record  *data = new Record;

(*data) = ist[row]

解决内存多次释放问题

发布了206 篇原创文章 · 获赞 18 · 访问量 7万+

猜你喜欢

转载自blog.csdn.net/lvmengzou/article/details/105455393
今日推荐