CArray<struct,struct&>arr;
arr.SetSize(100,-1)
arr.Add(struct1)
arr.Add(struct2)
arr.Add(struct3)
/*struct是一个结构*/
你还可以用它的派生类。

解决方案 »

  1.   

    #include <vector>vector < int *>*m_nList;
      

  2.   

    对不起我没说清楚,我的意思是用new操作符来创建,如int * a;a=new int[6];
    但我对二维或高维的还不太清楚.
      

  3.   

    对不起我没说清楚,我的意思是用new操作符来创建,如int * a;a=new int[6];
    但我对二维或高维的还不太清楚.
      

  4.   

    对不起我没说清楚,我的意思是用new操作符来创建,如int * a;a=new int[6];
    但我对二维或高维的还不太清楚.
      

  5.   

    对不起我没说清楚,我的意思是用new操作符来创建,如int * a;a=new int[6];
    但我对二维或高维的还不太清楚.
      

  6.   

    对不起我没说清楚,我的意思是用new操作符来创建,如int * a;a=new int[6];
    但我对二维或高维的还不太清楚.
      

  7.   

    好说,我的动态矩阵类就很合适,
    c语言有个好处就是可以这样
    #define MAX 100
    int* myarray;
    myarray= new int(sizeof(int)*MAX);
    myarray="hello world";
    这时候就可以用mychar[0]访问第一个字符,依次类推
    动态建立数组就是建立在这个基础上的
    当然,更好的动态是这样的
    int* myarray;
    myarray=new int(sizeof(int)*yournum);//yournum是你函数传来的参数
    至于多维,那也esay,
    自己算不就可以了。:)
      

  8.   

    记住,你的new int(..)只是说返回的是int型指针,并不是指int()中就会分这么多字节
    所以sizeof是必须的。
    象你的new int(6);那只分了6个字节而已,而vc++6.0中,一个int占4个字节。
      

  9.   

    TCHAR** ppchTest;
    for (int i = 0; i < nRow; i++)
    ppchTest[i] = new char[nCol]
    for (int i = 0; i < nRow; i++)
    delete[] ppchTest[i]
      

  10.   

    TCHAR** ppchTest;
    for (int i = 0; i < nRow; i++)
    ppchTest[i] = new char[nCol]
    for (int i = 0; i < nRow; i++)
    delete[] ppchTest[i]
      

  11.   

    用模板CArray是最好的,它甚至能做类似连表的Insert等操作,而区别是它的数据空间确实是连续的,可以象直接的[]一样使用。
    二维或高维数组比较难用的,归结到概念上:C本身就没有二维数组的概念,只是:数组的数组,二维数组的使用实际只是一个算术公式转换到一维数组的问题。
    CArray可以嵌套使用形成多维数组,但这时数据空间不是简单的[][]那样是连续的,效率影响也大一些。
      

  12.   

    可以试试这个二维数组。struct AFX_EXT_CLASS msArray_2
    {
    int row;
    int col;
    double *data;
    msArray_2()
    {
    row=col=0;
    data=NULL;
    }
    ~msArray_2()
    {
    Clear();
    }
    void SetData(UINT rows,UINT cols)
    {
     if(rows*cols!=(UINT)(row*col))
     {
     delete []data;
     if(rows*cols!=0)
     data=new double[rows*cols];
     else
     data=NULL;
     }
     row=rows;
     col=cols;
    }
    void Clear()
    {
    delete[]data;
    data=NULL;
    row=col=0;
    }
    double & var(int r,int c)
    {
    return data[r*col+c];
    }
    };