壹、在使用指針之前,要進行指針是否為null的判斷,如果為NULL卻直接使用該指針,就會異常終止。如在QTableView:
QStandardItemModel *model = new QStandardItemModel;
model->item(0,1)->text()
單元格沒編輯過,直接用 model->item(0,1)->text() 的話,程序會異常終止。
二、析構函數中加入釋放內存的delete代碼後,關閉Qt應用程序,會出現程序異常終止,去掉析構函數裏delete的代碼就沒有問題了。我是在工程中額外添加壹個繼承自QTableView的Qt設計師界面類,並在ui_widget.h中,即widget.ui界面的源碼中,將QTableView改為我這個添加的類的類名。在新建的類的cpp文件中,註釋掉
,ui(new Ui::CTblView);
ui->setupUi(this);
兩行,但沒有註釋掉
delete ui;
原因和第壹點壹樣,ui定義了沒有使用,就直接delete,故而導致程序異常終止。也註釋掉這行就正常了。
三、指針對象沒有實例化就進行引用
如:
Dialog *d;d = new Dialog;d->show();如果忘了第二行的實例化,也會導致Qt程序異常終止。