清楚指针容器内的指针
时间: 2023-09-26 15:14:09 浏览: 93
指针容器是一种特殊的容器,可以存储指针类型的数据。常见的指针容器有std::vector、std::list和std::set等。
要清楚指针容器内的指针,需要遵循以下步骤:
1. 遍历指针容器,访问每个指针。
2. 在访问每个指针之前,确保指针不为空,以避免访问空指针。
3. 对于每个非空指针,使用delete关键字释放指针所指向的内存。
4. 在释放内存之后,将指针设置为nullptr,以避免悬空指针的问题。
以下是一个示例代码,演示如何清楚一个std::vector容器内的指针:
```cpp
#include <iostream>
#include <vector>
int main() {
std::vector<int*> ptrContainer;
// 添加一些指针到容器
int* ptr1 = new int(1);
int* ptr2 = new int(2);
int* ptr3 = nullptr; // 空指针
int* ptr4 = new int(3);
ptrContainer.push_back(ptr1);
ptrContainer.push_back(ptr2);
ptrContainer.push_back(ptr3);
ptrContainer.push_back(ptr4);
// 清除指针容器内的指针
for (auto ptr : ptrContainer) {
if (ptr != nullptr) {
delete ptr;
ptr = nullptr;
}
}
// 清空指针容器
ptrContainer.clear();
return 0;
}
```
在上述代码中,我们首先创建了一个std::vector容器ptrContainer,并向其中添加了几个指针,包括一个空指针。
然后,我们使用循环遍历ptrContainer中的每个指针。在访问每个指针之前,我们检查指针是否为空。对于非空指针,我们使用delete关键字释放内存,并将指针设置为nullptr。最后,我们清空整个指针容器。
请注意,要正确释放指针所指向的内存,必须与指针容器中的指针相关联。如果有其他地方也在使用这些指针,那么在释放内存之前,必须确保这些指针不再被使用。
阅读全文