浅析C语言中五大内存管理
来源:互联网 发布:java serverlet 调用 编辑:程序博客网 时间:2024/05/11 02:05
在c++中,内存分为5个区,分别是栈区,堆区,自由存储区,全局/静态存储区和常量存储区.
1.栈区:是编译器在需要的时候分配,不需要的时候自动清除的存储区,一般存储空间比较小,里面放的变量是局部变量,函数参数等;(不会产生碎片)
2.堆区:是我们程序员手动alloc 或者new出来的内存,这块内存需要我们自己手动管理,编译器是不会干预的,在手动内存管理(MRC)中,遵循谁添加谁释放的原则.不然可能会造成内存泄露.另外堆是动态分配内存,并且恨意分配使用很大的内存,使用不当会产生碎片(类似磁盘碎片)在程序结束后,操作系统会自动回收;
3.自动存储区:是由malloc分配的内存块,他和堆十分相似,他的释放是由free关键字来完成;
4.全局/静态存储区,全局变量和静态变量被分配到同一块内存中;static修饰的变量
5.常量存储区:这是一块比较特殊的存储区,他们里面存放的是常量.是不允许被修改的.
注:1.函数体中定义的常量通常是申请在栈上,但是用malloc.realloc等分配的内存的是在堆上;
2.在栈上存取数据比通过指针在堆上存取数据效率更高.
0 0
- 浅析C语言中五大内存管理
- C语言的五大内存分区
- C语言五大内存分区介绍
- C语言的五大内存分区
- C/C++中五大内存分区
- c++语言--五大内存分区
- [转载]C/C++五大内存分区
- c/c++五大内存分区
- C++:五大内存分区及区别
- 在C++中, 五大内存分区
- C++中五大内存分区
- C++中五大内存分区
- da_11 C语言五大内存区及变量的存储类型
- 五大内存分区
- 五大内存分区
- 五大内存分区
- 五大内存分区
- 五大内存分区
- 怎么部署项目到Tomcat服务器
- 零散片断
- oracle-lower(),upper()函数
- UML序列图总结
- HTML5 Canvas 制作一个“在线画板”
- 浅析C语言中五大内存管理
- Android实现pdf在线预览或本地预览
- 打破求助陌生人最后的1cm
- 基于libRTMP的流媒体直播之音频推送
- codeigniter相关操作
- mochiweb源码阅读4-概括与使用
- 栈的压入、弹出序列
- 小猪CMS多用户微信营销平台短信插件开发
- 个人总结·数据结构与算法