C++很神奇的內(nèi)存管理, 一不小心, 弄了半天就是找不出問(wèn)題, 看似沒有問(wèn)題, 其實(shí)還是有問(wèn)題的, 頭疼.
還有, 如果一個(gè)指針沒有初始化, 就使用delete釋放掉, 程序也很可能會(huì)隨機(jī)的出現(xiàn)異常退出, 也不知道什么時(shí)候會(huì)出現(xiàn). 不過(guò)delete 釋放0指針是不存在危險(xiǎn)的.
MarkDialog::~MarkDialog() {
delete ui;
delete totalMarksModel;
delete totalMarksModel; // totalMarksModel被釋放了兩次, 程序在退出的時(shí)候發(fā)生異常
delete serviceNodeDAO;
}
MarkDialog::~MarkDialog() {
delete ui;
delete totalMarksModel;
delete detailMarksModel; // 改成這樣程序就能正常退出了.
delete serviceNodeDAO;
}