读书人

一个内存释放有关问题百思不得其解

发布时间: 2012-02-01 16:58:19 作者: rapoo

一个内存释放问题,百思不得其解,请教各位

C/C++ code
class myDialog: public QDialog{public:    myDialog();    ~myDialog();private:    QDirModel *m_pDirModel;};myDialog::myDialog(){    ui.setupUi(this);    m_pDirModel  = new QDirModel( this );    ui.m_pTree->setModel( m_pDirModel );//ui是对话框资源,m_pTree是一个QTreeView}myDialog::~myDialog(){    if (m_pDirModel)        delete m_pDirModel;}

我想我的代码没什么问题吧,可是每次打开对话框,然后关闭,内存就会比打开前多一点,不断打开关闭,内存会不断上升,不知道哪儿泄漏了,请各位赐教!

[解决办法]
指针被delete之后,按道理说,它所指向的空间已经被释放.但实际上操作系统出于效率和管理的考虑,内存空间是按照4KB大小分配的,你分配的4B大小的整数常常和别的变量空间在一个4KB页内,只有全都释放的情况下,才可能真正释放。

读书人网 >QT开发

热点推荐