C++很神奇的内存管理, 一不小心, 弄了半天就是找不出问题, 看似没有问题, 其实还是有问题的, 头疼.
还有, 如果一个指针没有初始化, 就使用delete释放掉, 程序也很可能会随机的出现异常退出, 也不知道什么时候会出现. 不过delete 释放0指针是不存在危险的.
MarkDialog::~MarkDialog() {
delete ui;
delete totalMarksModel;
delete totalMarksModel; // totalMarksModel被释放了两次, 程序在退出的时候发生异常
delete serviceNodeDAO;
}
MarkDialog::~MarkDialog() {
delete ui;
delete totalMarksModel;
delete detailMarksModel; // 改成这样程序就能正常退出了.
delete serviceNodeDAO;
}