[其它产品/技术] RAII在动态内存管理中的使用

[复制链接]
 楼主| 小小蚂蚁举千斤 发表于 2024-3-26 15:00 | 显示全部楼层 |阅读模式

RAII也常用于管理动态分配的内存,通过在对象构造函数中分配内存,在析构函数中释放内存。

  1. #include <iostream>
  2. #include <memory>

  3. class MemoryRAII {
  4. public:
  5.     explicit MemoryRAII(size_t size) : data(new int[size]) {
  6.         std::cout << "Memory allocated." << std::endl;
  7.     }

  8.     ~MemoryRAII() {
  9.         delete[] data;
  10.         std::cout << "Memory deallocated." << std::endl;
  11.     }

  12.     // 其他内存操作方法

  13. private:
  14.     int* data;
  15. };

  16. int main() {
  17.     try {
  18.         MemoryRAII memory(10);

  19.         // 在这里进行内存的读写操作,不用担心忘记释放内存

  20.     } catch (const std::exception& e) {
  21.         std::cerr << "Exception: " << e.what() << std::endl;
  22.     }

  23.     return 0;
  24. }

LOVEEVER 发表于 2024-3-27 15:59 | 显示全部楼层
在对象构造函数中分配内存,在析构函数中释放内存
jf101 发表于 2024-3-28 19:06 | 显示全部楼层
管理动态分配的内存也是需要功底的
星辰大海不退缩 发表于 2024-3-29 14:17 | 显示全部楼层
对象构造函数中分配内存,在析构函数中释放内存
您需要登录后才可以回帖 登录 | 注册

本版积分规则

225

主题

2536

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部

225

主题

2536

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部