C语言指针参数传递问题

2019-07-20 14:36发布

oid *myfree(void *p)
{
        uint32_t number,i;
        u8 *q = p;//为什么这里要赋给一个局部指针,不直接使用P进行操作呢
       
        number=(uint32_t)((q-MEM_BUFF[0])/MEM_BLOCK_SIZE);
        for(i=number;i<(MEM_BCT_TAB[number].num+number);i++)
        {
                MEM_BCT_TAB.mem_state=0;
        }
        MEM_BCT_TAB[number].num=0;
       
        return (void *)0;       
}

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
14条回答
zhoujianwen
1楼-- · 2019-07-21 12:20
civic7366 发表于 2017-5-11 11:56
就是2F說的原因吧...
number=(uint32_t)(( q-MEM_BUFF[0])/MEM_BLOCK_SIZE);

void*声明函数的形参只是为了更好的接收不同类型的指针吧,局部定义的U8类型我觉得是,在内存分配的时候就是定义的U8类型,所以这样释放好点吧,我的重点不是这个啊,重点是我想知道直接用形参和局部参数的区别,用局部的相对于形参有什么好处吗
zhoujianwen
2楼-- · 2019-07-21 17:59
 精彩回答 2  元偷偷看……
civic7366
3楼-- · 2019-07-21 21:40
zhoujianwen 发表于 2017-5-11 21:14
void*声明函数的形参只是为了更好的接收不同类型的指针吧,局部定义的U8类型我觉得是,在内存分配的时候 ...

你怎麼只看了原本2F的第一點, 不看人家的第二點呢....

zhoujianwen
4楼-- · 2019-07-21 23:31
civic7366 发表于 2017-5-12 08:55
你怎麼只看了原本2F的第一點, 不看人家的第二點呢....

什么第一第二点?
civic7366
5楼-- · 2019-07-22 00:49
 精彩回答 2  元偷偷看……
zhoujianwen
6楼-- · 2019-07-22 00:55
civic7366 发表于 2017-5-12 11:44
第二个:程序员之间一个潜在的约定是不直接操作或者修改输入指针(因为输入的是指针,会直接修改数据,而 ...

..

一周热门 更多>