内存模型

王朝学院·作者佚名  2016-08-27
窄屏简体版  字體: 小  |  中  |  大  |  超大  

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实例,有两个分配在栈上的指针

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航