函数传指针然后返回指针问题
当我们调用函数传入一个指针变量,并且在调用函数中在函数的参数返回该指针
首先,在函数返回接收时是这样可以只传一级指针可以正确的返回指针参数
//通过函数返回
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char *GetStr(void)
{
char *p = (char )malloc(64sizeof(char));
strcpy(p,“hello”);
return p;
}
int main(void)
{
char *str = NULL;
str = GetStr();
printf("%s\n",str);
free(str);
return 0;
}
第二,当我们的函数返回被占用时,我们希望通过函数参数的形式传参,并且函数参数返回指针,此时我们传参就需要传二级指针,这个有点像形参和实参的问题了。
//通过函数参数返回
int GetStr(char **p)
{
*p = (char )malloc(10sizeof(char));
strcpy(*p,“hello”);
return 0;
}
int main(void)
{
char *str = NULL;
GetStr(&str);
printf("%s\n",str);
free(str);
return 0;
}