智能指针释放内存空间代码
时间: 2023-11-12 14:11:31 浏览: 48
智能指针是一种 C++ 的语言特性,用于管理动态分配的内存,可以自动释放内存空间,避免了手动释放内存空间的繁琐工作。智能指针通过 RAII(Resource Acquisition Is Initialization)技术实现,即资源的获取与初始化是一体的。C++ STL 提供了两种智能指针:unique_ptr 和 shared_ptr。
下面是使用 unique_ptr 释放内存空间的示例代码:
```c++
#include <memory> // 引入智能指针头文件
#include <iostream>
int main() {
std::unique_ptr<int> ptr(new int(10)); // 创建 unique_ptr 智能指针
std::cout << *ptr << std::endl; // 输出指针指向的值
ptr.reset(); // 手动释放内存空间,unique_ptr 会自动释放
return 0;
}
```
下面是使用 shared_ptr 释放内存空间的示例代码:
```c++
#include <memory> // 引入智能指针头文件
#include <iostream>
int main() {
std::shared_ptr<int> ptr(new int(10)); // 创建 shared_ptr 智能指针
std::cout << *ptr << std::endl; // 输出指针指向的值
ptr.reset(); // 手动释放内存空间,shared_ptr 会自动释放
return 0;
}
```
在上面的示例代码中,我们使用了 `reset()` 函数手动释放内存空间,unique_ptr 和 shared_ptr 都会在指针超出作用域或被显式释放时自动释放内存空间。使用智能指针可以大大减少手动管理内存空间的工作量,避免内存泄漏等问题的发生。