用二维指针编写接口可以避免有些类型的return出错的问题
#include <stdio.h>
void test(char **string)
{
*string = "hello world";
}
int main()
{
char *str = NULL;
test(&str);
printf("str=%s\n",str);
getchar();
return 0;
}
结果:
具体分析如下图:
过程:
1.定义一个字符串指针str,str本身的地址是100,值为0(即NULL,一般的编译器NULL的地址是0)。
2.取str的地址100传给string,此时string的值是100,地址为200
3.这里假设“hello world”字符串的地址是300,接下来就是改变一级指针指向的内容的地址,由0变成300
|