QT 앱을 쓰고 있는데 C++로 녹슨 것이므로 그게 문제입니다. Mac에서 exc_bad_access
신호로 충돌이 발생했습니다. 이는 메모리가 잘못되어 있음을 의미합니다.QT 앱에서 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
는 인스턴스 변수이며, (당신은 함수 서명에서 짐작 하듯이) 포인터 : 여기에 내 코드입니다. 그것은 단순한 게으른 로딩입니다. I 생각해 보자. 나는이 클래스가 객체를 소유하고 있기 때문에 메모리 관리를하고있다. (나중에 소멸자에서 삭제됨).
충돌이 w -> show();
줄에서 발생하면 QT는 QWidget show() 함수 내부에 불만을 제기합니다. 실제로는이 사실을 알지 못합니다.
누군가 나를 도울 수 있습니까? 감사!