问题是这样的:  创建了一个结构体数组:
struct ExpRe
{
CString OldName[10];//被替换的挂件名称
int OldNum;     //被替换的挂件数量
CString NewName[10];//替换成的挂件名称
int NewCount[10];//保存替换成的挂件的数量
int ComId[10];//挂件编号
int NewNum;     //有多少个新挂件
}; struct ExpRe re[1000];
现在要改成动态创建这个结构体数组,应该怎么创建呢?

解决方案 »

  1.   

    没明白楼主的意思typedef struct _ExpRe 

    CString OldName[10];//被替换的挂件名称 
    int OldNum;     //被替换的挂件数量 
    CString NewName[10];//替换成的挂件名称 
    int NewCount[10];//保存替换成的挂件的数量 
    int ComId[10];//挂件编号 
    int NewNum;     //有多少个新挂件 
    }*PExpRe, ExpRe; 要动态创建的话,只需要在你需要创建的时候申请一下就可以了:ExpRe *pRe = (ExpRe*)malloc(sizeof(ExpRe) * n);       //n表示你要创建多少个      
                                                                                    //ExpRe结构体.对了,记得要在不用的时候把申请的pRe释放掉
      

  2.   

    如果是动态创建固定大小的数组的话,可以这样:
    ExpRe * pre;
    pre=new ExpRe[1000];如果是非固定大小的话,可以使用标准库
    //引入头文件的名称空间
    #include<vector>
    using namespace std;//使用的方法:
    vector<ExpRe*> m_Re;
    ExpRe* node;
    node=new ExpRe;
    m_Re.push_back(node);//要引用的时候可以和数组一样的访问
    m_Re[12].OldNum=100;//但是要记住释放内存
    typedef vector<ExpRe*>::iterator VI;
    vi i;
    for(i=m_Re.begin();i!=m_Re.end();++i)
    {
    delete (*i);
    }
    m_Re.clear();
      

  3.   

    我是要用NEW动态创建结构体数组re[1000],解决了,谢谢各位!