我有一个函数为;
CString* getstringarray()
{
     CString str[2];
     for (int i=0 ;i<2;i++)
     {
         str[i]="aa";
      }
      return str;}然后我在另外一个函数这样用:
aa()
{
  CString* a;
  a=getstringarray();
}出错?请大侠们指教!

解决方案 »

  1.   

    aa()
    {
      CString* a;
      a=getstringarray();
    }
    a没有初始化,
       CString str[2];
         for (int i=0 ;i<2;i++)
         {
             str[i]="aa";
          }
    要操作str应该先getbuffer吧
      

  2.   

    因为在函数getstringarray中,str是局部变量,出了函数以后就被销毁了
      

  3.   

    getstringarray()不应该传指针,而要传值
      

  4.   

    getstringarray应该用new.
    在aa中记得delete[] a;
      

  5.   

    我忘了STR是PUBLIC的
    我有一个函数为;
    public: CString str[2];
    CString* getstringarray()
    {
         for (int i=0 ;i<2;i++)
         {
             str[i]="aa";
          }
          return str;}然后我在另外一个函数这样用:
    aa()
    {
      CString* a;
      a=getstringarray();
    }
      

  6.   

    楼上说得对。可以这样实现你的意图
    CString* getstringarray()
    {
         static CString str[2];
         for (int i=0 ;i<2;i++)
         {
             str[i]="aa";
          }
          return str;}aa()
    {
      CString* a;
      a=getstringarray();
    }
      

  7.   

    new 就可以了
    不过不要忘记delete
      

  8.   

    new 就可以了
    不过不要忘记delete
    不过,你的现在也是可以执行的,你在检查以下你的代码
      

  9.   

    不如用CStringArray 简单点。
      

  10.   

    aydh696 ()  和 wocan() 是不是同一个人阿