项目6_内存分配-PDA的内存管理.pptVIP

  • 11
  • 0
  • 约 20页
  • 2017-09-29 发布于湖南
  • 举报
项目6:内存分配-PDA的内存管理 (2) 本节课程主要知识点 堆 栈 各种内存分配方法的对比 重点和难点 重点 堆和栈的基本概念 难点 堆的使用 堆 堆 堆是一段连续的虚拟地址空间。每一个进程都管理着一个堆。 应用程序在堆中可以动态地分配、释放所需大小的内存块。 在堆内分配内存块可以是任意大小的,而直接分配内存就必须以内存页为单位。 内存的页 内存是以页为单位分配的。 内存页的大小与具体的CPU有关。 页的大小一般是1KB,4KB,64KB等。 本地堆 默认情况下,Windows CE为本地堆保留192KB的虚拟内存空间,如果不够的话,可用函数VirtualAlloc()申请更多的内存。 192KB的虚拟内存并不立刻提交分配物理内存。 当堆中的块被释放时,系统将查看是否整个页都已经被释放,如果是那个页将被回收。 在本地堆中分配内存 堆内分配内存可以任意大小,单位为字节,所分配的内存称为块。 使用完后注意要回收分配的内存。 在堆中申请内存可使用malloc/free、new/delete、LocalAlloc/LocallFree等函数。 Windows CE5.0只支持堆中固定块的分配,这样随着时间的推移,多次创建释放内存块,堆内就会产生大量内存的碎片。 堆的操作函数 LocalAlloc 在堆中申请内存 LocalFree 释放使用过的内存 HeapCreate 创建堆

文档评论(0)

1亿VIP精品文档

相关文档