sizeof、class_getInstanceSize、malloc_size的区别

  • sizeof:是一个运算符,获取的是类型的大小(int、size_t、结构体、指针变量等),这些数值在程序编译时就转成常数,程序运行时是直接获取的

  • class_getInstanceSize:是一个函数(调用时需要开辟额外的内存空间),程序运行时才获取,计算的是类的大小(至少需要的大小)

    • 创建的对象【至少】需要的内存大小
    • 不考虑malloc函数的话,内存对齐一般是以【8】对齐
    • #import
  • malloc_size:堆空间【实际】分配给对象的内存大小

    • 在Mac、iOS中的malloc函数分配的内存大小总是【16】的倍数
    • #import

你可能感兴趣的:(sizeof、class_getInstanceSize、malloc_size的区别)