iOS内存分布

2020-10-21  本文已影响0人  分贝丶

iOS内存分为五大区

 栈区(stack)
 堆区(heap)
 全局/静态区(bss)
 文字/常量区(data)
 代码区(code)

栈区(stack)

int a = 10;
// a指针地址是在栈区的 0x7xxxx
NSLog(@"a=%d,a地址:%p",a,&a); 
NSObject *obj = [NSObject new]; // 对象 --
NSLog(@"obj对象-%@,obj指针地址:%p",obj,&obj); // 0x6 堆

打印结果:

a=10, a地址:0x7ffee2acc1ec
obj对象-<NSObject: 0x600000fbc270>,obj指针地址:0x7ffee2acc1e0
//对象的内存地址和对象指针的内存地址不是同一个
//而且obj的指针地址0x7xxxx在栈区,对象是在堆区0x6xxxx
//一般情况0x7xxxx 就是栈区,0x6xxxx就是堆区

堆区(heap)

全局/静态区(bss)

文字/常量区(data)

代码区(code)

内存分布图
上一篇 下一篇

猜你喜欢

热点阅读