为了账号安全,请及时绑定邮箱和手机立即绑定

iOS系统的内存是什么结构

iOS系统的内存是什么结构

守候你守候我 2019-03-29 10:58:18
在DebugiOS应用的时候发现一个有趣的现象,有些对象的内存地址位数非常低,有些对象的内存地址位数非常高。比如:NSString*str=[[NSStringalloc]init];//0x00d892b4NSArray*arr=[[NSArryalloc]init];//0x0742fb30据我了解,操作系统进行内存分配是有一定顺序的,不可能跳跃的分配,那么为什么iOS程序分配内存的时候,地址跳跃极大呢?
查看完整描述

2 回答

?
慕桂英4014372

TA贡献1871条经验 获得超13个赞

iOS的内存分三段,Text段存运行时代码,Stack段存编译时申请空间的数据,Heap段存运行时申请空间的数据。
NSString的init方法就是把@""付给这个指针,同:initWithString:@"",同=@""。iOS会给@""(或@"abcd")在编译时就分配内存,放在Stack段。Stack段是从低位开始向高位使用,不受引用计数控制。
NSArray的init方法则是在运行时才分配空间的,放在Heap段。Heap段是从高位开始的,受引用计数控制。
                            
查看完整回答
反对 回复 2019-03-29
  • 2 回答
  • 0 关注
  • 526 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号