每个应用都有自己的独立内存空间,起空间一般都有以下几大区域:
代码段(代码区)
这个代码段代码区一般放什么东西呢?用于存放代码 什么意思?就是我们编写的这些C++代码,或者说其他编程语言代码,不管用什么编程语言写代码。最终是不是都编译成01010101这些机器指令,也就是机器码将来跑起来就是你这个应用程序跑起来,你这些代码这机器吗?放在内存的什么地方释放内存的代码区啊?这个区域一般来说是只读的,只读就是不能改,只能读取里面代码,然后执行里面的代码就不能去改你们的东西。
数据段(全局区)
定义在函数外部的变量叫做全局变量,全局变量就存放在全局区。整个程序运行过程中总都会存在,除非你的程序死掉了关闭了,才会释放。
栈空间
每调用一个函数就会给这个函数分配一段连续的站空间,用途:用于存放这个函数产生的局部变量。等函数调用完毕后会自动回收这段栈空间。自动分配。自动回收。
堆空间
需要程序员主动去申请和释放,如果程序员不释放,程序结束时OS释放回收。
需要堆空间的原因?什么情况下需要堆空间?
为了在程序运行过程中,能够自由的控制内存的生命周期、大小。这时候就会使用对空间的内存。
链接: javascript:void(0).