前言
从缺陷中学习C/C++
这是一本在研究大量C/C++程序Bug基础上集结而成的书!
这是一本汇集众多一线C/C++编程人员智慧的书!
这是一本让您学好C/C++,绕过编程陷阱和障碍的必备案头书!
为什么写这样一本书
在不同的项目或产品中,不同的开发人员重复着同样的Bug,甚至同一个人重复相同的Bug。如果将时间周期拉得更长一些看:一个程序员,从刚毕业参加工作到具备丰富编程经验,从一个新手到成为专家,在这个过程中,每个人都在重复着前人走过的弯路,重复着同样的编程错误。测试人员在日常工作中积累了大量验证Bug方面的经验,这些Bug是有价值的,总结出来可以让更多人受益。
C/C++是软件/互联网行业最常用的编程语言之一,相对其他语言学习难度高,从新手到专家往往需要多年的磨练。另一方面,C/C++开发的系统往往更容易产生严重的生产事故,一旦出现事故,定位问题根源也比较困难。所以,每一个程序员掌握扎实的C/C++基础知识,对于构建稳定可靠的生产系统非常重要。我们希望通过这本书帮助C/C++程序员以最快速度全面了解C/C++编程中的陷阱,编写健壮可靠的代码,从而达到提高软件质量、减少生产故障、提高工作效率的目的。
第6章 内存使用
6.1 数组越界
6.2 数组定义和值初始化形式混淆
6.3 数组传参时的sizeof
6.4 临时对象的生存期
6.5 变量的作用域
6.6 指针变量的传值和传址
6.7 指针赋值和指针赋址的混淆
6.8 指针释放后再次使用
6.9 重复申请内存未释放
6.10 delete与delete[]的区别
6.11 函数中途退出忘记释放内存
6.12 二维数组的内存泄露
6.13 临时变量内存不能返回
6.14 正确使用引用参数和引用返回值
6.15 试图产生的指针很可能不存在
6.16 结构体成员内存对齐问题
6.17 String对象何时需delete
6.18 小结