代码如下:
char * pChar;
BOOL bCovert=Getstr(pChar);BOOL Getstr(char * pChar)

   char* pTempChar="1234567" ;
   pChar=pTempChar;//此时结果正确
   return TRUE;//执行完该语句后pChar就不正确

函数不能正确返回,为什么,应该怎么改阿

解决方案 »

  1.   

    BOOL  Getstr(char  *&pChar)不过返回局部变量总归不好,应该给pChar分配空间,然后将字符串拷贝到pChar。
      

  2.   

    if(*pTempChar==*pChar)
      retrun TRUE;
      

  3.   

    这是由于指针pTempChar指向的为堆内存,函数执行结束后,堆内存的原有的内容被清空,新内容不可知,所以pChar只想的内容也就不正确的。你可以在该函数外部定义字符数组,或者动态分配内存存储,但要用完记得释放内存。
      

  4.   

    这是由于指针pTempChar指向的为堆内存,函数执行结束后,堆内存的原有的内容被清空,新内容不可知,所以pChar指向的内容也就不正确了。你可以在该函数外部定义字符数组,或者动态分配内存存储,但要用完记得释放内存。
      

  5.   

    也就是说语句pChar=pTempChar中,pChar获得的仅仅是与pTempChar相同的内存地址,并没有分配新的内存,实现数据的拷贝,是不?
      

  6.   

    指针pChar指向局部指针pTempChar
    函数返回时,局部指针pTempChar释放
    指针pChar指向一个已经释放了的空间;
    当然出错