软件测试第6章讲课.pptVIP

  • 4
  • 0
  • 约1.24万字
  • 约 55页
  • 2017-05-18 发布于湖北
  • 举报
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 第6章 检查代码 内存管理 常见的内存错误 忘记了释放内存,造成内存泄露。 动态内存的申请与释放必须配对,程序中malloc 与free 的使用次数一定要相同,否则肯定有错误。 释放了内存却继续使用它。 程序中的对象调用关系过于复杂,实在难以搞清楚某个对象究竟是否已经释放了内存,此时应该重新设计数据结构,从根本上解决对象管理的混乱局面。 函数的return 语句写错了,注意不要返回指向“栈内存”的“指针”或者“引用”,因为该内存在函数体结束时被自动销毁。 使用free 或delete 释放了内存后,没有将指针设置为NULL。导致产生“野指针”。 * 延伸知识:高质量C/C++编程 第6章 检查代码 内存管理 指针与数组的对比 数组要么在静态存储区被创建(如全局数组),要么在栈上被创建。数组名对应着(而不是指向)一块内存,其地址与容量在生命期内保持不变,只有数组的内容可以改变。 指针可以随时指向任意类型的内存块,它的特征是“可变”,所以我们常用指针来操作动态内存。指针远比数组灵活,但也更危险。 指针 ≠ 数组 * 延伸知识:高质量C/C++编程 第6章 检查代码 内存管理 指针与数组

文档评论(0)

1亿VIP精品文档

相关文档