加强公司网站建设及数据库的通知,代理网络怎么关闭,网站建设服务费的会计处理,做简单视频网站自己看在C/C语言中#xff0c;不同的类型开辟的空间区域都是不一样的. 这节我们就简单了解下开辟不同的类型内存所存放的区域在哪里. 文章目录栈区#xff08;stack#xff09;堆区#xff08;heap#xff09;数据段#xff08;静态区#xff09;常量存储区内存开辟布局图栈区… 在C/C语言中不同的类型开辟的空间区域都是不一样的. 这节我们就简单了解下开辟不同的类型内存所存放的区域在哪里. 文章目录栈区stack堆区heap数据段静态区常量存储区内存开辟布局图栈区stack 由系统进行内存的管理。主要存放函数的参数以及局部变量在函数完成执行系统自行释放栈区内存不需要用户管理。 而栈区的使用习惯是先使用高地址的空间在使用低地址的空间。所以栈内存分配运算内置于处理器的指令集中拥有很高的效率但是分配的内存容量是有限的。如果超出了容量就会栈溢出Stack overflow 堆区heap 堆区主要存放malloccallocrealloc等内存函数开辟出来的空间。堆区的空间最好是连续存放的这样有利于减少内存碎片 堆区的内存一般由程序员分配释放 若程序员不释放程序结束时可能由OS回收 。分配方式类似于链表随机在堆区上开辟一块空间。 数据段静态区 静态存储区内的变量在程序编译阶段已经分配好内存空间并初始化。这块内存在程序的整个运行期间都存在它主要存放静态数据(static)、全局变量和常量。程序结束后由系统释放。 静态存储区内的常量分为常变量和字符串常量一经初始化不可修改。静态存储内的常变量是全局变量与局部常变量不同区别在于局部常变量存放于栈实际可间接通过指针或者引用进行修改而全局常变量存放于静态常量区则不可以间接修改。所以字符串常量都被放在静态内存区 ,放在静态内存区会提高效率 常量存储区
常量存储区也称代码段或者代码区 存放函数体的二进制代码由操作系统管理创建代码区时共享的对于频繁被执行的程序只需要存有一份代码即可. 内存开辟布局图