【发布时间】:2012-07-18 05:43:51
【问题描述】:
我有一个程序,我在其中收集一些数据并将它们临时存储在双端队列中
typedef vector<float> floatVector;
...
floatVector * currRecord;
deque<floatVector *> data;
...
...
for (...)
{
...
currRecord = new floatVector(10);
data.push_back(currRecord);
}
稍后,我想将数据保存到文件中
while (data.size() > 0)
{
for (int i=0; i < 10; i++)
{
fprintf(fPtr, "%lf\t", data[0]->at(i) );
}
fprintf(fPtr,"\n");
data.pop_front();
}
那么,我的问题是,这个程序会导致内存泄漏吗?我使用new 运算符为每个currRecord 向量分配内存。 deque pop_front 函数会自动回收内存吗?还是我需要放
delete [] data[0]
之前
data.pop_front();
?另外,如果data 是向量而不是双端队列,那么一切都会一样吗?谢谢!
【问题讨论】:
标签: c++ memory-leaks stl vector deque