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 里面存的地址强转为指针,然后对那个指针指向的地址取值