读Flash等读接口中,关于二级指针入参的用法注意

void read_demo(UINT_T *out_value)
{
    BYTE_T *buff = NULL;

    flash_read(&buff);

    /* 方法一 */
    UINT_T *temp = (UINT_T *)buff;
    *out_value = *temp;
    Free(temp); //注意temp和buff指向同一个地址,不要double free
    temp = NULL;
    buff = NULL;

    /* 方法二(推荐) */
    *out_value = *((UINT_T *)buff);
    Free(buff);
    buff = NULL;
}

方法二说明:

1、buff 的地址传到了 flash_read() 函数里,变成了一个二级指针

2、buff 地址里面存的是另一个地址,那个地址里面存的是真实数据

3、先把 buff 里面存的地址强转为指针,然后对那个指针指向的地址取值

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值