QList<QByteArray> 用clear无法清空
时间: 2023-12-16 19:06:27 浏览: 216
custom-list-model.zip_List<Custom> list_list qt_qt list_qt lis
QList<QByteArray> 是 Qt 中的一个容器类,它用于存储 QByteArray 类型的数据。如果你使用 QList<QByteArray> 的 clear() 函数无法清空该容器,那么可能是因为该容器中还存在指针指向的内存未被释放。这种情况下,可以尝试使用以下代码手动释放该容器中的每个元素所占用的内存:
```
QList<QByteArray>::iterator it;
for (it = list.begin(); it != list.end(); ++it) {
delete[] (*it).data();
}
list.clear();
```
这段代码遍历了 QList<QByteArray> 容器中的每个元素,并使用 delete[] 来释放它们所占用的内存。最后再调用 QList 的 clear() 函数,就能够清空该容器了。请注意,这种情况下,我们需要使用 delete[] 而不是 delete 来释放 QByteArray 对象所占用的内存,因为 QByteArray 对象内部使用了动态分配的内存块。
阅读全文