Qt中的QVector具有比普通指针数组更多的优势,其中之一便是可以自动释放内存,而无需使用delete手动释放。在实际开发中,我们经常需要在QVector中存储指向动态分配内存的指针。由于QVector并不会自动释放指针所指向的对象内存,因此需要手动释放。本文将涉及如何循环删除QVector中的指针,并给出完整的源代码和相应的描述。
首先,我们创建一个QVector存储指向动态分配内存的指针:
QVector<int*> ptrs;
接下来,我们填充该QVector对象:
for(int i=0; i<10; i++){
int* ptr = new int(i);
ptrs.append(ptr);
}
现在,ptrs中存储了10个指向动态分配内存的int型指针。由于QVector不会自动释放这些指针所指向的内存,所以我们需要手动释放。
首先,我们可以使用QVector::size()函数获取QVector中存储的指针数量。然后,使用QVector::at()函数获取每个指针,并使用delete删除该指针所指向的内存:
for(int i=0; i<ptrs.size(); i++){
int* ptr = ptrs.at(i);
delete ptr;
ptr = nullptr;
}
上述代码循环遍历QVe