NSLog(@"对象类型占用内存大小--%lu",sizeof(q)); NSLog(@"对象实际内存大小---%自定义多种数据类型属性的Person对象",class_getInstanceSize([pclass])); NSLog(@"对象实际内存大小---%lu",class_getInstanceSize([qclass])); NSLog(@"系统为分配的内存大小--%lu",malloc_size((__bridgeconstvoid*)(p...
系统分配了16个字节给NSObject对象(通过malloc_size()函数获得),但是NSObject内部只使用了8个字节的空间(64bit环境下,可以通过class_getInstanceSize()函数获得;同时也可以通过 sizeof()运算符来获得)。 在内存中的表现是: 内存表示图 查看ios开源的底层源码,了解class_getInstanceSize()、malloc_size()的执行逻辑:...
sizeof:是一个运算符,获取的是类型的大小(int、size_t、结构体、指针变量等),这些数值在程序编译时就转成常数,程序运行时是直接获取的 class_getInstanceSize:是一个函数(调用时需要开辟额外的内存空间),程序运行时才获取,计算的是类的大小(至少需要的大小) 创建的对象【至少】需要的内存大小 不考虑malloc函数的...