#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void fun1(char** s);
void fun2(char** s);
void fun3(char** s);
void fun1(char** s)
{
char* _s = *s;
*s = (char*)malloc(sizeof(char)*100);
strcpy( *s,"11" );
//*s = (char*)("11"); 不可以这样赋值,会造成内存泄露
printf( "%s\n",*s );
fun2(s);
}
void fun2(char** s)
{
strcpy( *s,"22" );
printf( "%s\n",*s );
fun3(s);
}
void fun3(char** s)
{
strcpy( *s,"33" );
printf( "%s\n",*s );
}
int main()
{
char *_s = NULL;
char** s = &_s;
fun1(s);
printf( "final ; %s\n",*s );
free( *s );
return 0;
}
转载于:https://www.cnblogs.com/luoyinjie/p/7219335.html