【发布时间】:2011-10-13 01:06:57
【问题描述】:
我正在编写一个 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() 函数内的某个地方,这对我来说真的没有意义。
有人可以帮帮我吗?谢谢!
【问题讨论】:
标签: c++ qt memory-management qwidget