读书笔记之《高质量的C-C++编程》第七章节:内存管理

本文讲述了C++编程中内存管理的关键点,包括使用malloc或new后应检查指针是否为NULL,防止内存泄漏,避免数组越界,释放内存后指针设为NULL以消除野指针,讨论了new/delete与malloc/free的区别以及如何处理内存耗尽的情况。强调了正确使用指针和调试的重要性。
摘要由CSDN通过智能技术生成

在这一章节,干货满满但是需要遵守的规则却很少,推荐大家具体去看看书籍。

第七章

7.1 内存分配方式(无)

7.2 常见的内存错误及其对策

【规则 7-2-1】用 malloc 或 new 申请内存之后,应该立即检查指针值是否为 NULL。防止使用指针值为 NULL 的内存。

【规则 7-2-2】不要忘记为数组和动态内存赋初值。防止将未被初始化的内存作为右值使用。

【规则 7-2-3】避免数组或指针的下标越界,特别要当心发生“多 1”或者“少 1”操作。

【规则 7-2-4】动态内存的申请与释放必须配对,防止内存泄漏。

【规则 7-2-5】用 free 或 delete 释放了内存之后,立即将指针设置为 NULL,防止产生“野指针”。

7.3 指针与数组的对比(无)

7.4 指针参数是如何传递内存的?(无)

7.5 free 和 delete 把指针怎么啦?(无)

7.6 动态内存会被自动释放吗?

(1)指针消亡了,并不表示它所指的内存会被自动释放。

(2)内存被释放了,并不表示指针会消亡或者成了 NULL 指针。

7.7 杜绝“野指针”

(1)指针变量没有被初始化。

(2)指针 p 被 free 或者 delete 之后,没有置为 NULL,让人误以为 p 是个合法的指针。

(3)指针操作超越了变量的作用范围。

7.8 有了 malloc/free 为什么还要 new/delete ?(无)

7.9 内存耗尽怎么办?

(1)判断指针是否为 NULL,如果是则可以马上用 return 语句终止本函数。

(2)判断指针是否为 NULL,如果是则可以马上用 exit(1)终止整个程序的运行。

(3)为 new 和 malloc 设置异常处理函数。

7.10 malloc/free 的使用要点(无)

7.11 new/delete 的使用要点(无)

7.12 一些心得体会

(1)越是怕指针,就越要使用指针。不会正确使用指针,肯定算不上是合格的程序员。

(2)必须养成“使用调试器逐步跟踪程序”的习惯,只有这样才能发现问题的本质。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值