返回局部变量后,该变量的内存就被系统回收了,所以你返回的东西是不能用的。
解决
1,使用全局变量
2,使用new或malloc

解决方案 »

  1.   

    szBuf 是一个临时变量,他的生命期在函数Gets里面,调用结束后,此变量也就无意义啦!所以返回值应该是不确定的!
    :)
      

  2.   

    你这样写肯定是不行的,因为你的szBuf是局部变量,当你的Gets()函数返回后,szBuf的指针将被释放,所以可能会遇到错误。要解决这个问题有两种办法:
    1 直接改变pData的值,函数不需要返回值

    int main()
    {
      TCHAR szBuf[100];
      Gets(TEXT("iasdjgkjsdfgkjk"),szBuf);
    }
    void Gets(PTSTR pData,PTSTR buf)
    {
       .......
    }