美文网首页
iOS结构体内存分配方式探究

iOS结构体内存分配方式探究

作者: 笑里剑 | 来源:发表于2020-10-27 13:37 被阅读0次

    iOS结构体内存大小分配遵循以下几条原则:
    *结构体大小是其内部变量中最大内存变量的整数倍
    *结构体内部变量的属性的起始内存地址是其本身大小的整数倍
    *结构体中如果有其他结构体,那么内部的结构体变量会被放在起始位置

    例子1:


    截屏2020-10-27 13.19.56.png

    内存布局分析
    内存最大的变量为a 8字节,所以最终内存大小是8的整数倍
    内存布局模拟
    a 8 0-7 0是8的倍数,所以0可以作为存储位
    b 2 8-9 8是2的倍数,所以8可以作为存储位
    c 4 .. (12-15) 9不是4的倍数,所以c实际是从12开始存储
    d 2 16-17 16是2的倍数,所以16可以作为存储位
    最终得到的实际存储位为0-17,总共18位,按照内存对齐原则,最终大小为3x8 = 24
    例子2:


    截屏2020-10-27 13.35.08.png
    本例中包含了一个结构体,通过测试发现结构体属性在起始位置,内存布局如上

    具体内存大小可通过sizeOf()方法验证,本文章是对自己学习过程的一个验证和记录,如果有不正确的地方,欢迎指正哦

    相关文章

      网友评论

          本文标题:iOS结构体内存分配方式探究

          本文链接:https://www.haomeiwen.com/subject/zrmtvktx.html