首页 > 其他 > 详细

Object C 内存分配大小

时间:2014-09-27 13:23:31      阅读:330      评论:0      收藏:0      [点我收藏+]

     虽然做iOS开发也有一段时间,但一直疲于赶项目,并未仔细研究OC,难得今日比较闲又拿起OC资料研读一番,发现效果很好,不过也感慨技术更新实在过快,发现之前的资料已经和现行技术有些出入。

     在某资料上对内存这一块讲解时,当给一个对象分配内存时,其内存的大小是由这个类的成员变量决定,比如:

@interface  Car : NSObject

{

    int year;

    NSString *make;

    NSString *model;

}

@end

对于这个Car类,该资料的输出结果是:

NSObject *object = [[NSObject alloc] init]; 

Car *testCar = [[Car alloc] init];

NSLog(@"%lu", sizeof(object)); // 4B

NSLog(@"%lu", sizeof(testCar)); //16B

讲解的原因是“Car类继承NSobject,所以首先有4B的内存,然后3个成员变量各占4B,也就是4B + 3 * 4B = 16B”。

但是最后通过实践发现,其输出结果:

NSLog(@"%lu", sizeof(object)); // 8B

NSLog(@"%lu", sizeof(testCar)); //8B

都为8B.


Object C 内存分配大小

原文:http://my.oschina.net/u/1404621/blog/322584

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!