簡體   English   中英

QT應用中的exc_bad_access崩潰

[英]exc_bad_access crash in QT app

我正在編寫QT應用程序,但對C ++感到非常生疏,所以我猜這就是問題所在。 我的Mac上的exc_bad_access信號崩潰了,這意味着我的內存做錯了。 這是我的代碼:

void MainWindowController::showMainWindow() {
    MainWindow *w = mainWindow();
    w ->show();
}

MainWindow *MainWindowController::mainWindow() {
    if (NULL != _mainWindow)
        return _mainWindow;

    // otherwise, we need to load it and return it

    _mainWindow = new MainWindow(0);
    return _mainWindow;
}

_mainWindow是一個實例變量,是一個指針(您可能已經從函數簽名中猜到了)。 這是一個簡單的延遲加載。 認為我的內存管理正常,因為此類擁有對象(該對象隨后在析構函數中刪除)。

崩潰發生在w -> show(); 一行,QT抱怨它在QWidget show()函數中的某個地方,這對我來說真的沒有意義。

有人可以幫我嗎? 謝謝!

事實證明,這甚至更簡單。 我習慣了Objective-C,其中ivars自動初始化為0。C++不會這樣做。 因此,我必須確保_mainWindow在構造函數中已初始化為NULL。 問題解決了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM