首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > QT开发 >

QList<int>的内存有关问题想不明白了,请大家指点一下

2013-12-20 
QListint的内存问题想不明白了,请大家指点一下.我的测试代码如下:#include QtCore/QCoreApplication#i

QList<int>的内存问题想不明白了,请大家指点一下.
我的测试代码如下:
#include <QtCore/QCoreApplication>
#include <QList>
#include <QDebug>
QList<int> list;
void testlist()
{
    for(int i=0;i<20;i++){
        list<<(i+20);   ///<--------增加到链表中的是 局部变量, 不是通过内存来分配的,
    }
}
int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    testlist();
    for(int i=0;i<20;i++)
    qDebug()<<list.at(i);
    return a.exec();
}
而我的理解是 临时变量是分配到栈里的, 那么在出栈的时候, 自然就释放了,那么链表中的数据当然也就没有了, 为什么在接下来链表打印时还可以打印出来, 不明白,往各位指教一下,谢谢.

[解决办法]
好吧,上边的已经说了原因了。<<操作,list自己malloc出空间存放int了,你以为把临时变量的地址放进去了,其实是一次deep copy.

热点排行