怎么样定义返回值为数组的函数?

解决方案 »

  1.   

    int *a()
    {
    static int b[256];
    ……
    return b;
    }
    下次用该函数前有效
      

  2.   

    [1]在函数中定义静态数组,然后返回其地址,想bluebohe(薄荷)讲得那样
    [2]使用new分配一个数组,然后返回,记得在外边用完要释放
    int *a()
    {
     int* p = new int[xxx];
    ……
    return p;
    }
    使用:
    int* pData = a();
    ....
    delete []pData;
    [3]如果函数是类的成员变量,则可以在类中声明一个数组成员,然后再函数中返回该成员
    class A
    {
       int m_data[100];
    public:
       int* getData();
    };int* A:getData()
    {
     return (int*)m_data;
    }
      

  3.   

    谢谢!
    请问怎样使int m_data[100]中的100为可变值?
      

  4.   

    class A
    {
       int* m_pData;
    public:
       A(int iSize);
       int* getData();
    };
    A::A(int iSize)
    {
       if (iSize > 0)
      {
        m_pData = new int[iSize];
       }
       else
       {
         m_pData = NULL;
        }
    }
    int* A:getData()
    {
     return (int*)m_pData;
    }