【发布时间】:2011-05-04 16:50:27
【问题描述】:
#include <QList>
class MyType{
//This has some data in it....
};
QList<MyType> f()
{
QList<MyType> list;
for(int i = 0; i<10; i++ )
{
MyType* item = new MyType();
list << *item;
}
return list;
}
QList<MyType> temp_var = f();
当 temp_var 超出范围并销毁时,我们创建并添加到此列表中的项目会发生什么? 会不会有内存泄漏?
谢谢。
【问题讨论】:
-
要清楚——在您的示例程序中,您没有将分配的对象存储在
QList中,也没有存储指向已分配对象的指针。您正在存储已分配对象的 副本。看来你是想问其他问题?你的意思是问“当指针列表被销毁时会发生什么?” -
@Rob:你是对的,问题应该是“当指针列表被销毁时会发生什么?”显而易见的答案是“内存泄漏”.. 但正如你所提到的,我不知道列表中有“复制”对象。
标签: c++ qt memory-leaks