char * aa() 

   const char * bb = "fdsfads";    return bb; 
}

解决方案 »

  1.   


    比较好的方法是:1、在主函数中申请缓冲区;2、把缓冲区的首地址传入子函数中;3、在子函数中可能会操作缓冲区;4、子函数返回后,缓冲区的内容已经改变了。
    程序如下:void test( char * pBuf )
    {
      strcpy( pBuf , "大象、大象,你的鼻子为什么那么长?" );
    }main()
    {
      char szBuf[100]={0};
      test( szBuf );
      printf( "%s\n" , szBuf );
    }
      

  2.   


    char * aa()
    {
       char * bb = "fdsfads";   return bb;
    }
    这个bb是个临时变量,当函数执行完了就会销毁。用临时变量作为返回值,会造成不稳定。
      

  3.   

    char * bb = "fdsfads"; 
    是指向某常量,虽然指针bb被销毁,但是它被返回的内存值,既是那个字符串的值依然是存在内存中的。
      

  4.   

    char * aa(char * bb)  
    {  
       bb = "fdsfads";     return bb;  
    }
      

  5.   

    同意zaodt的说话.
    平时也是这样用的.
      

  6.   


    这个做法没有任何问题,因为字符串常量"fdsfads"的那片内存任何时候都不能被覆盖
      

  7.   

    呵!!这个程序是肯定有问题,就是生命期的问题,bb,"fdsfads"是局部变量,当它被传出来时,就被析构,所以就没有值了,