nsobject

2020-07-06  本文已影响0人  如果大雨落下

一个NSObject对象占用多少个字节
16个,
NSObject 里面的isa指针占用了8个自字节,malloc库在分配内存的时候,64位的,不足16个字节的,会分配16个字节

@interface student:NSObject
int _no;
int _age;
@end

student 占用16个字节

struct student_Impl {
class *isa; //占用8个字节
int _no; // 每个int占用4个字节
int _age;
}

所以一共占用16个字节

内存对齐选择,实际大小必须要是最大的的变量大小的整数倍
@interface student:NSObject
int _no;
int _age;
Int _avg;
@end
大小是isa 8个,3个int12个,但是由于内存对齐原则,所以是24个
实际分配的大小:是32个,因为手机内存里面的空间不是连续的,都是提前分配好的一个一个的小块,苹果里面最小的块是16.其他都是16的倍数,最大256,所以当需要分配实际大小是24的时候,会直接丢一个32的内存空间出来

isa指针

上一篇 下一篇

猜你喜欢

热点阅读