【c++回顾】内存管理机制

在这个模型中,我们将会把一个 C++ 程序在运行的时候所占据的内存空间,分成以下四个部分:

  • 栈区( Stack )
  • 堆区( Heap )
  • 全局区/静态区( Global/Static )
  • 常量区( Constant )

在 C++ 程序的内存空间中,我们在代码中声明的局部变量,以及函数的形式参数,都保存在栈区中——这部分内存在程序运行的时候会自动分配,而在不需要的时候也会自动释放,并不需要程序员自己去手动维护。

而我们使用new运算符,或者 C 语言中的malloc函数进行动态内存分配之后,系统为我们划分的内存空间,就来自于堆区。因为程序自己并不知道这些动态分配的内存到什么时候会派不上用场,所以程序并不会对这部分已经分配的内存做任何处理。

对于全局变量,以及我们的后续课程中要讲到的静态( static )变量,其保存在内存中的全局/静态区( Global/Static )——全局变量和静态变量是存储在同一块内存空间中的。我们可以简单地认为,程序启动之后,全局/静态变量就保存在这里,而程序结束之后,对应的内存空间将会自动释放。

最后是常量( Constant )区——实际上在实际的程序中并不存在这样一个区域,这里只是为了让大家方便理解。我们可以简单地认为,所有的常量(以const开头)都存放在一起——这些区域不可释放。

以上来自计蒜客 ?

全部评论

相关推荐

01-18 22:21
门头沟学院 Java
26届公办二本,目前在上海某二游中厂测试实习中两个多月了,准备下周问leader能不能转正,但感觉希望渺茫25年初时,我的目标还是后端开发,能够找到合适的暑期实习在秋招找寻机会。那段时间我一直都在欺骗自己,时间还早,小厂要求低。项目是抄的,算法是不刷的,八股是背了就忘的,直到七月才发现自己只有crud的能力,遂选择了一家互联网小厂去干功能测试。在这段实习我感觉什么都没有学到,只是一味的点点点,写在简历上的经历能把自己逗乐。秋招果然大败而归,于是在十一月初接下了一家二次元游戏公司的测试实习。新公司的氛围很好,管理扁平,日常福利也很多。虽然平时的会议也会参加,同事们也很友好,但是我仍感觉没有什么归属感。我肯定是非常想要能够转正的,一面面试官也说有转正机会,但hr面却和我说明是日常实习。我很喜欢这里,但可能没有太大的机会,所以我肯定是要去参加春招的。但最近考虑到春招的hc情况,我是又着急又难受。前几天公司举办了年会,这种情况达到了顶点,我连续三天失眠到凌晨四点,心里全在想如果找不到工作该怎么办。其实我知道,并不是我找不到,而是眼高手低,甚至秋招我只在各官网投,ssob没有任何投递。而且我选择游测完全是因为自己的二次元属性,春招也有特别意向的库洛,我甚至是因此才来这边实习的。但我害怕库洛给不了我机会,更害怕没有其他机会。在异地出租屋没有朋友,颈椎不舒服,睡眠越来越差,甚至痔疮越来越严重,烟也越抽越多,我真的害怕自己的身体再来些啥毛病春招啊,给我些运气吧。
星辰尽头:保持平常的心态,做该做的事情就好,要相信一切会水到渠成
春招启动,你开始投递了吗...
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务