指针值传递问题

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u014132659/article/details/70048614



typedef struct gpio {
	char *test;
} gpio_t;
全部都是值传递
void  func(char *test)
{
    test = malloc(4);  //这是局部变量的malloc,不会传出去
}

void  functest(char **test)
{
    *test = malloc(4);  //地址传递,这样就能传出去
}

void  funcfunc(char *test)
{
    int i = 0;
    for( i = 0; i < 4; i++)
    {
        test[i] = i;
     }
}
int main()
{
    gpio_t g;
    func(g.test);      //值传递,错误
    functest(&(g.test));   //地址传递,可以

    g.test = malloc(5);
    funcfunc(g.test);   //值传递,可以
}


猜你喜欢

转载自blog.csdn.net/u014132659/article/details/70048614
今日推荐