函数中局部变量char *被Destroy了造成取出数据不对, 有什么办法搞定这段小代码呢? [附Code]解决方案

函数中局部变量char *被Destroy了造成取出数据不对, 有什么办法搞定这段小代码呢? [附Code]
#include   <iostream>
using   namespace   std;

int   GetString(   char   *pc   )
{
pc   =   "abcdefg ";
return   100;
}

int   main(   void   )
{
int   i   =   1;
char   *pi;


GetString(   pi   );
cout   < <   pi   < <   endl;

getchar();
return   0;
}

输出不对,   估计是局部变量被Destroy的缘故,  
菜问:   在不改动GetString()函数参数类型及返回值的情况下(最好该函数全部不改动),   有什么办法让输出是 "abcdefg "?

------解决方案--------------------
int GetString( char **pc )
{
*pc = "abcdefg ";
return 100;
}
------解决方案--------------------
int GetString( char *&pc )//C++中可以用指针的引用
{
pc = "abcdefg ";
return 100;
}
------解决方案--------------------
int GetString( char *pc )//这种写法的问题是,pc是main中pi的副本
{
pc = "abcdefg "; //所以这里对pc的修改并不会修改到main中pi
return 100;
}
------解决方案--------------------
GetString( pi );
cout < < pi < < endl;

这里 pi 是指向char类型的指针变量啊,是个32位值,而且你没初始化pi,pi是个野指针,lz代码大大有问题
------解决方案--------------------
按值传递与按引用传递参数的问题
------解决方案--------------------
前面都给了解答了
要么指向指针的指针,要么传引用