频道栏目
首页 > 程序开发 > 软件开发 > C语言 > 正文
C语言内存管理
2017-09-12 10:34:28      个评论    来源:xc_1990的博客  
收藏   我要投稿

C语言定义了4个内存区域:

1、代码区:存放程序的代码,只读。

2、全局变量与静态变量区(静态存储区),内存在程序编译的时候已经分配好,在程序的整个运行期间都存在(如全局变量、静态变量、字符串常量),分配在该区域的变量,在程序结束时才释放内存,其生命周期比较长,主要用于函数间传递信息。

3、栈区,在栈上创建,在执行函数时,函数内局部变量的存储单元都可以在栈区创建,函数执行结束自动释放。栈内存分配运算内置于处理器的指令集中,效率高,缺点是分配的内存容量有限。Linux系统中为8192K(8M,提供ulimit –s查看)。

这种存储方式,变量内存的分配和释放都自动进行,方便调用,缺点栈容量有限,当相应的范围结束时,局部变量不能再被使用。

4、堆区,某些操作对象只有在程序运行时才能确定(比如说一个结构体中的员工名字,需要用户手动输入,只有用户输入完成后才知道需要多少内存),这样编译器在编译时无法预先分配空间,只能在程序运行时分配,也称为动态分配。程序在运行时使用malloc函数申请任意多少的内存,程序员自己负责释放内存(使用free函数)。动态内存的生命周期由我们决定,使用起来比较的灵活,但问题比较多。

点击复制链接 与好友分享!回本站首页
上一篇:数据结构c语言链队
下一篇:C语言初步学习:分支结构体验(发工资)
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训

版权所有: 红黑联盟--致力于做实用的IT技术学习网站