当前位置: 首页 > news >正文

苏州网站建站/免费推广工具

苏州网站建站,免费推广工具,中国建筑第八工程局官网,陕西省建设厅网站劳保统筹基金接着说C/C的内存,今天来讨论一下程序在内存中的分布情况,一般说内存,指的是计算机的随机存储器(RAM),程序都是在这里运行的 如有侵权,请联系删除,如有错误,欢迎大家指正&#xff0c…

接着说C/C++的内存,今天来讨论一下程序在内存中的分布情况,一般说内存,指的是计算机的随机存储器(RAM),程序都是在这里运行的

如有侵权,请联系删除,如有错误,欢迎大家指正,谢谢

0. 程序内存布局

  • 栈区(stack):由编译器自动分配释放,存储函数的参数值,局部变量值等,其操作方法类似于数据结构中的栈
  • 堆区(heap):一般由程序员申请和释放,与数据结构中的堆没有任何关系,分配方式类似于链表
  • 全局/静态区(static):全局变量和静态变量是存储在一起的,在程序编译时分配
  • 文字常量区:存储常量字符串
  • 程序代码区:存储函数体(类的成员函数、全局函数)的二进制代码

1. 栈内存

  • 程序自动向操作系统申请分配以及回收,速度快,使用方便,但是程序员无法控制,如果分配失败,抛出栈溢出错误

注意点

  • const 局部变量也存储在栈区,栈区向地址减小的方向增长
  • 系统为变量在栈上申请内存后,CPU需要不断地判断变量是否已结束使用的生命周期,如果生命周期结束,系统就会释放为这个变量申请的栈内存,这样一来随着在栈上申请的变量增多,会对CPU造成额外的消耗

2. 堆内存

  • 程序员向操作系统申请一段内存,当系统收到程序的申请时,会遍历一个记录空内存结点的链表,找到第一个空间大于或等于所申请空间的堆结点,将该空闲结点从链表中删除,并将该结点的空间分配给程序,如果链表中空闲结点的空间大于申请空间的大小,系统会自动将对于的部分放入空闲链表中,故容易造成内存的碎片化,分配速度较慢,地址不连续

注意点

  • 程序员申请的内存必须由程序员负责释放,否则会导致内存泄漏,堆的增长方向与内存地址的增长方向相同,因此在堆区上申请空间理论上是没有大小限制的,但是受安装内存条的大小和系统以及其他程序的占用,不是无限大的
  • 程序员申请在堆上的内存,是由程序员自己管理的,不像栈上的变量那样,需要消耗CPU资源判断变量的生命周期,所以不会对CPU造成额外的消耗,这也是程序员申请堆上内存的优点

3. 堆和栈的比较

申请方式

  • 栈(stack):系统自动分配,如声明int a; 系统自动在栈空间为a开辟空间
  • 堆(heap):程序猿申请,并指明大小,C中malloc运算符,如char* p = (char *)malloc(sizeof(char)); C++中new运算符,如int *n = new int(10);

注意点

  • 指针p和n本身是在栈中,它们指向的地址空间是堆区的空间

申请内存大小的限制

  • 栈(stack):在Windows下,栈是向低地址方向扩展的,是一块连续的内存区域,也就是说栈顶的地址和栈的最大容量是系统预先规定好的,在Windows下,一般栈的大小是1M(这个是可以改的,总之是一个编译时就确定的常数),如果申请的空间超过栈的剩余空间,将会抛出overflow
  • 堆(heap):堆是向高地址方向扩展的,是不连续的内存区域,原因是系统使用链表的方式存储堆的空闲结点的,这个链表的遍历方向是由低到高的,堆获得的空间受限于计算系统中有效的虚拟内存,比较灵活
LWenlong:C/C++的指针​zhuanlan.zhihu.com
http://www.jmfq.cn/news/5012911.html

相关文章:

  • 常德市政府门户网站群建设方案/买友情链接有用吗
  • 做一个简单的管理系统/网站seo优化报告
  • 外贸网站建设及优化ppt模块/一个产品的网络营销方案
  • 绵阳微信网站/如何做网站
  • 网站推广规范/友情链接图片
  • 济南外贸网站制作/北京最新疫情情况
  • 电商创业怎么做/汕头网站优化
  • flash 网站 源码/优化设计七年级下册语文答案
  • 59网站一起做网店/推广平台排行榜有哪些
  • 电商网站新闻怎么做/推广平台有哪些渠道
  • 跨国多语言交友网站建设/seo舆情优化
  • 宜春企业网站的建设/企业培训内容
  • 做二手房比较好的网站/如何在百度上发布自己的广告
  • 原创文学网站建设/福州seo公司排名
  • 做视频网站代码/抚顺网站建设
  • 中山好的网站建设公司哪家好/友情链接翻译
  • 网站制作报价多少/seo交流博客
  • 网页小游戏网站建设/上海十大营销策划公司排名
  • 台州制作网站软件/个人网站制作模板
  • 做网站可以赚钱吗/福州seo排名优化
  • 山东临沂网站开发/亚马逊排名seo
  • 做微信请帖网站/企业网站大全
  • 杭州做企业网站的公司/seo教学培训
  • php网站建设与维护/上海网站推广系统
  • 网站非法篡改/seo搜索引擎优化业务
  • 广州网站制作功能/永久免费google搜索引擎
  • 网站开发费用明细/网络营销广告
  • 昌乐网站制作/北京seo优化排名
  • 战鼓的h5网站如何做/阿拉善盟seo
  • 网站备案后怎么做/青柠影院免费观看电视剧高清