首页 > 学院 > 开发设计 > 正文

内存模型

2019-11-14 17:54:36
字体:
来源:转载
供稿:网友

NSString *someString = @"The string";

// 对象所占内存总是分配在堆空间中,而绝不是栈上。不能在栈中分配Objective-C对象。

// NSString stackString;// error:interface type cannot be statically allocated

NSString *anotherString = someString;// 只有一个NSString 实例,然而有两个变量指向此实例,这说明当前栈帧里分配了两块内存,每块内存的大小都能容下一个指针(32位架构--4B,64位架构--8B)。这两块内存里的值都一样,就是NSString实例的内存地址。如图:

图1-1 此内存布局图延时了一个分配在堆中的NSString实例,有两个分配在栈上的指针


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表