GD32F3开发进阶教程—— 习题及答案 电子 【ch06】内存管理实验.docx
-
资源ID:97139421
资源大小:45.36KB
全文页数:2页
- 资源格式: DOCX
下载积分:15金币
快捷下载
会员登录下载
微信登录下载
三方登录下载:
微信扫一扫登录
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
GD32F3开发进阶教程—— 习题及答案 电子 【ch06】内存管理实验.docx
第六章内存管理实验一、简述分块式内存管理的原理内存管理,是指软件运行时对计算机内存资源的分配和使用的技术。其最主要的目的是 如何高效,快速的分配,并且在适当的时候释放和回收内存资源。内存管理的实现方法有很 多种,他们其实最终都是要实现2个函数:malloc和free; malloc函数用于内存申请, free函数用于内存释放。分块式内存管理是众多内存管理方式中的一种。它的实现原理如下图所示。内存池内存管理表图6-1分块式内存管理原理图二、简述造成内存泄漏的原因内存泄漏:是指在程序代码中动态申请的、堆上的内存由于某种原因、在使用后没有被 释放,进而造成内存的浪费。少部分的内存泄漏不会影响程序的正常运行,不过如果是持续 的内存泄漏会耗光系统内存,最终会导致程序卡死甚至系统崩溃。例: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关键字取消分配内存。