首页 > 代码库 > Object C 内存分配大小
Object C 内存分配大小
虽然做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 内存分配大小
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。