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

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值