GD32F3开发进阶教程—— 习题及答案 电子 【ch06】内存管理实验.docx
《GD32F3开发进阶教程—— 习题及答案 电子 【ch06】内存管理实验.docx》由会员分享,可在线阅读,更多相关《GD32F3开发进阶教程—— 习题及答案 电子 【ch06】内存管理实验.docx(2页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第六章内存管理实验一、简述分块式内存管理的原理内存管理,是指软件运行时对计算机内存资源的分配和使用的技术。其最主要的目的是 如何高效,快速的分配,并且在适当的时候释放和回收内存资源。内存管理的实现方法有很 多种,他们其实最终都是要实现2个函数:malloc和free; malloc函数用于内存申请, free函数用于内存释放。分块式内存管理是众多内存管理方式中的一种。它的实现原理如下图所示。内存池内存管理表图6-1分块式内存管理原理图二、简述造成内存泄漏的原因内存泄漏:是指在程序代码中动态申请的、堆上的内存由于某种原因、在使用后没有被 释放,进而造成内存的浪费。少部分的内存泄漏不会影响程序的正
2、常运行,不过如果是持续 的内存泄漏会耗光系统内存,最终会导致程序卡死甚至系统崩溃。例:1 ,使用malloc申请的内存要主动调用free, new申请的内存要主动调用delete,否 则就会导致内存泄漏。2 .使用new申请的数组,释放的时候要用delete:删除,如果错误地使用delete删 除,就会造成内存泄漏。三、若需要同时申请并使用多块内存,如何避免内存泄漏?1、不要手动管理内存,可以尝试在适用的情况下使用智能指针。2、使用string而不是char*。string类在内部处理所有内存管理,而且它速度快且优 化得很好。3、除非要用旧的lib接口,否则不要使用原始指针。4、在C+中避免内存泄漏的最好方法是尽可能少地在程序级别上进行new和delete调 用-最好是没有。任何需要动态内存的东西都应该隐藏在一个RAH对象中,当它超出范围 时释放内存。RAH在构造函数中分配内存并在析构函数中释放内存,这样当变量离开当前 范围时,内存就可以被释放。5、使用了内存分配的函数,要记得使用其想用的函数释放掉内存。可以始终在new和 delete之间编写代码,通过new关键字分配内存,通过delete关键字取消分配内存。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ch06 GD32F3开发进阶教程 习题及答案 电子 【ch06】内存管理实验 GD32F3 开发 进阶 教程 习题 答案 内存 管理 实验
限制150内