本文主要分为三个部分。第一部分是对linux的内存做一下简单介绍。第二部分是对C和C++内存管理的几个关键字做一些介绍和它们的不同。第三部分是参考资料。
- 第一部分
这一部分包含有两部分内容。第一部分是在Linux中内存的分配;第二部分是内存的管理。
内存分配:
在linux中对内存的申请是做如下操作。当申请成功的时候,只是返回的逻辑地址,即从某个地址到某个地址区间的内存你可以使用。这个时候物理内存是没有分配,只有你做真实的写操作的时候,真正的物理内存才分配下来。
而且当申请内存的时候,一般会分配比申请内存要大的一块内存区域,把这块内存缓冲下来。这样下次申请的的时候就可以在缓存内首先查找,而不需要去操作系统申请。同样在内存释放的时候,也不会立即把内存释放给操作系统,也是缓冲下来。这也可以解释为何有些时候申请内存的时候,内存里会有乱七八糟的数据。这就是因为少一次申请内存中的数据么有被清零,而这块内存又被缓冲下来。
对于linux中内存分配如下图所示: