欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

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

更新时间: 2014-01-05 02:43:36 责任编辑: Author_N1

 

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.
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 02:43:36
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/13574/
本文WWW.DOC100.NET DOC100.NET版权所有。