sizeof结构体数组长度_从c语言到汇编(五)数组中的结构体

本文探讨了数组元素为结构体和结构体指针时的sizeof运算。通过汇编代码分析了两种情况下的内存布局和大小计算,揭示了C语言中数组与结构体结合时的内存管理细节。
摘要由CSDN通过智能技术生成

02b29006f181c30ed8b08da2e5a346da.png

数组可以由结构体构成,这里讨论两种情况:数组的元素是结构体,数组的元素是结构体指针。

数组的元素是结构体。

struct obj
{
        char sex;
        int old;
        int weight;
        int height;
};


int fun(void)
{
        struct obj objs[10];
        int i;

        i=3;

        objs[i].sex='m';
        objs[i].old=18;
        objs[i].weight=80;
        objs[i].height=180;
        return 0;
}

汇编代码

        pushl   %ebp
        movl    %esp, %ebp
        //申请的栈空间
        subl    $176, %esp
       
        //i=3
        movl    $3, -4(%ebp)
        //计算元素i的地址
        movl    -4(%ebp), %eax
        //i=i*16
        sall    $4, %eax
        // -164(%e
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值