XZ_iOS之动态内存分配(Dynamic memory allocation)

本文详细介绍了计算机内存的五个主要区域:栈区、堆区、静态区、常量区及代码区的功能与特点。栈区由系统自动管理,适用于函数内部临时变量;堆区则由程序员手动分配与释放;静态区存放全局变量;常量区用于存储不可更改的常量数据;代码区负责保存程序的指令代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

内存:5个区域
从高到低分为:栈区(8兆以下,7.5兆以上)、堆区(非常大)、静态区、常量区、代码区
1、栈区:系统分配内存以及回收内存。函数体内创建的变量的分配在栈区。当函数循环分支执行结束后,局部变量生命周期结束,不能再被使用,由系统收回权限,但是不清理数据。
局部变量基本都在栈区。
栈区的特点:后来居上,先进后出,后进先出。
int a = 10; // a存在内存的栈区,10存在内存的常量区。
2、堆区:动态分配内存。由用户(程序员)分配和回收,如果程序员未回收内存,则,内存会越用越少,导致内存不够用,程序崩溃。当程序退出时,堆内存由系统回收。
3、常量区:用于存放常量的内存区域。由系统分配回收;常量区的数据只能被读取,不能被修改,修改会造成崩溃;程序结束后,被回收。
例: 10,1.5,'a','hello'
4、静态区(全局区):定义在函数体外面的变量(全局变量),由系统开辟空间,程序运行过程中一直存在,到程序退出,由系统回收。只初始化一次,在编译的时候进行初始化,运行期间可以修改。
5、代码区:存放源代码编译结果的区域。将代码编译成二进制。由系统分配、回收;只能读取,不能修改。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值