Dtor

C++ 里可能出现的内存问题大致有这么几个方面:
1. 缓冲区溢出
2. 空悬指针/野指针
3. 重复释放
4. 内存泄漏
5. 不配对的new[]/delete

6. 内存碎片

正确使用智能指针能很轻易地解决前面5 个问题,解决第6 个问题需要别的思路,
我会另文探讨。
1. 缓冲区溢出⇒ 用vector/string 或自己编写Buffer 类来管理缓冲区,自动记住
用缓冲区的长度,并通过成员函数而不是裸指针来修改缓冲区。
2. 空悬指针/野指针⇒ 用shared_ptr/weak_ptr,这正是本文的主题
3. 重复释放⇒ 用scoped_ptr,只在对象析构的时候释放一次
4. 内存泄漏⇒ 用scoped_ptr,对象析构的时候自动释放内存
5. 不配对的new[]/delete ⇒ 把new[] 统统替换为vector/scoped_array

除了编程书,操作系统教材也是必读的,
至少要完整地学习一本经典教材的相关章节,可从《操作系统设计与实现》、《现代操作系统》、
《操作系统概念》任选一本,了解各种同步原语、临界区、竞态条件、死锁、典型的IPC 问
题等等,防止闭门造车

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值