不妥之处还请高手指正 Symbian OS内存管理介绍( 三 )



CArrayFixFlat<...>* fixflat;
...
fixflat = new (ELeave) CArrayFixFlat<...>(3);

程序请求了heap中部分的内存地址 , 并把地址返回给调用者 。请求heap中的内存必须是显式的 , 同样 , 释放这些内存时也必须进行显式调用 。

Structure of a heap(heap 结构)
heap包括两个单元列表 。一个是已经分配的内存单元列表 , 一个是还未分配的内存单元列表 。两个列表都在heap对象上 。内存单元由单元头和单元体组成 , 单元体实际上就是一个内存区 。单元头是在e32std.h 中定义的 RHeap::SCell 结构体 , 他是RHeap类的一部分 。

如何共享heap
heap通常被同一个进程的线程所共享当一个线程创建时:
?它可以和父线程使用同一个heap 。
?父线程同时为新线程创建一个新的heap 。
?新线程使用系统为它创建的heap 。
这里 , 只有第一和第二中情况可以认为是heap的共享 。

推荐阅读