Qt プログラムが異常終了する理由:
1. ポインタを使用する前にポインタが null かどうかを判定する必要があり、NULL であってもポインタを直接使用すると異常終了します。
たとえば、QTableView: QStandardItemModel *model = new QStandardItemModel;
model->item(0,1)->text()
セルは編集されていないため、model->item(0,1)->text() を直接使用します。プログラムは異常終了します。
2. デストラクタにメモリを解放する削除コードを追加すると、Qt アプリケーションが終了し、プログラムが異常終了しますが、デストラクタ内の削除コードを削除すれば問題ありません。
QTableView から継承した Qt デザイナー インターフェイス クラスをプロジェクトに追加し、ui_widget.h (widget.ui インターフェイスのソース コード) で、QTableView を追加したクラスのクラス名に変更します。新しく作成したクラスの cpp ファイル内で ui(new Ui::CTblView); ui->setupUi(this); の 2 行をコメントアウトしますが、delete ui はコメントアウトしないでください; 理由は最初の点と同じです。 ui が
定義されているため、使用した場合は直接削除することになり、プログラムが異常終了します。この行もコメントアウトするのが通常です。
3. インスタンス化せずにポインター オブジェクトを参照する
例: Dialog *d; d = new Dialog; d->show(); 2 行目のインスタンス化を忘れると、Qt プログラムも異常終了します。
百度からの転載: https://zhidao.baidu.com/question/433068969.html