其实早就想写一篇关于内存区域的一篇文章,不过限于自己水平有限,一直未能完成这样一篇文章。今天我也是再看了好多大神的文章之后才敢写下这篇文章,希望能帮到大家。注意,今天说的内存区域主要针对于C语言,其他语言的内存管区域以及管理方式可能有所不同。
C语言中的内存分为5中:
1.文本域:这个区域也有成为常量存储区,我觉得这样不太好,因为有大神明确指出这个区域除了存储常量之外还存储一些机器代码。
2.数据域:主要用来存储全局变量或者静态变量。这个区域也分为两个段,有初始化值的被存储在.data段;未被初始化的存储在.bbs段,并被初始化为0或者NULL;
3.栈:这个是有系统分配和管理的。说明一下,我们函数的执行和普通创建都是在理进行的。有高地址向低地址扩展。
4.堆:堆得大小是动态的,有用户自己管理。一定记住一个原则:谁开辟,谁释放。否则可能会造成内存泄漏。
推荐一个大神的blog,如果想深入研究一下可以看看。<a href="http://www.cnblogs.com/skynet/archive/2011/03/07/1975479.html">wuqin</a>
网友评论