内存释放

场景:求内存释放步骤

求内存释放方法。

         QWidget *dd = new QWidget();
dd->setAttribute(Qt::WA_DeleteOnClose);
dd->resize(this->size());
QPixmap* tempimage = new QPixmap();
QPixmap* tempimage1 = new QPixmap();
*tempimage= QPixmap::grabWidget(this,this->rect());
QIcon *ss= new QIcon(*tempimage);

*tempimage1 = ss->pixmap(tempimage->size(),QIcon::Disabled);
QPalette* newpattele = new QPalette();
*newpattele=dd->palette();
dd->setAutoFillBackground(true);
newpattele->setBrush(QPalette::Background,*tempimage1);
dd->setPalette(*newpattele);
dd->show();
delete tempimage;
delete tempimage1;
delete ss;
delete newpattele;


求方法 我上面的代码中 QPixmap 部分内存释放不了。我做测试,程序的内存将不断增加。如何释放掉QPixmap的内存。我需要用完马上释放,来减小资源压力。大牛们出来教教我。

各位大牛出来指导下吧
------解决方案--------------------
分配在栈上行不 不要new
------解决方案--------------------
我以前写过截图程序 没发现这个函数的不能释放啊
------解决方案--------------------
看了一下觉得你没有用到new出来的对象,你只是想用指针作为句柄来操作你得到的对象。所以你可以只是声明一下指针,并不需要把它new出来。当然这样后面的赋值操作也要做相应的修改。


------解决方案--------------------
同理,QPalette* newpattele = new QPalette();
这个也是不需要new的
引用:
看了一下觉得你没有用到new出来的对象,你只是想用指针作为句柄来操作你得到的对象。所以你可以只是声明一下指针,并不需要把它new出来。当然这样后面的赋值操作也要做相应的修改。

------解决方案--------------------
 试一下小秘书,不错哦。。。[align=center]**********************************************
欢迎使用 **** 小秘书
http://blog.****.net/whowhen21
**********************************************[/align]
------解决方案--------------------
应该是可以释放的,你可以看一下程序的其他地方有没有问题,或是你调用其他的函数造成的内存泄露,另外你也可以缩小一下问题代码的范围,同时也可以用非常简短的代码测试一下,看时候有问题。

希望能够帮到你!
------解决方案--------------------
使用QPixmap tempimage;不要new,
把QPixmap分配到栈上,不要分配到堆上;
------解决方案--------------------
QPixmap* tempimage1 = new QPixmap();
....    
*tempimage1 = ss->pixmap(tempimage->size(),QIcon::Disabled);
总觉得这么写很别扭。你把它改成:
QPixmap* tempimage1 = new QPixmap( ss->pixmap(tempimage->size(),QIcon::Disabled) );
看看
------解决方案--------------------
 看了一眼代码就感觉有错啊 你那两个tempimage 刚new出来就又指向了其他地址,内存已经丢了啊 怎么释放
------解决方案--------------------
delete顺序改一下。