首先看下问题提示:
HEAP[SimEng.exe]: HEAP: Free Heap block 000002CA51FC08A0 modified at 000002CA51FC0950 after it was freed
Ok,碰到这种xxxx地址的报错提示就慌得一批。
解答
经过一种暴力式解谜,找到以下的原因(解谜过程不建议也不见得能复用,基本上就是看堆栈,“偶然”看到有熟悉的名字就去找到用到的地方,然后一点一点注释,然后找不同,极其低效QAQ):
原因:
关闭窗口,开始执行析构:
1.从mainwindow开始析构:

2.析构它的孩子(m_osgwidget):


3.析构其他孩子(MAP_OSG_LayerControlWidget):


真相只有一个:3中析构调用了2中已经被析构的指针!<


2221

被折叠的 条评论
为什么被折叠?



