我要如下的操作该怎么办?
这里如何用new的进行操作
#define max1 2020
#define max2 518
struct commandu
{
int id;
char sigcommand[max1];
};
void CTest2Dlg::OnOK() 
{
// TODO: Add extra validation here
int i;
commandu kknd[max2];
unsigned mu = sizeof(commandu)*max2;
memset(kknd,'\0',mu); for(i=0;i<max2;i++)
kknd[i].id = i;

// CDialog::OnOK();
}

解决方案 »

  1.   

    如你的代码中所示,你已经有了相应的数据结构了,栈中分配的。是不是太大了栈溢出?那就new呀,该怎么new怎么new就是了
      

  2.   

    能举例怎么new数据结构吗?
    而且要能访问里边的成员啊。
      

  3.   

    faint……faint again.commandu *p = new commandu;
    p->id = ……;
    strcpy(p->syscommand, "format c:");
      

  4.   

    struct commandu
    {
    int id;
    CString sigcommand;
    };
      

  5.   

    const max = 1000000;
    int data[max];
    有同样的问题
      

  6.   

    const max = 1000000;
    int *p = new int[10 * max];
    //...
    delete []  p;
    没问题
      

  7.   

    #define max1 2020
    #define max2 518struct commandu
    {
      int id;
      char sigcommand[max1];
    };void CDialog2::OnMyArray() 
    {
      int i;
      commandu *kknd = new commandu[max2];  // memset(kknd,'\0',mu);  for(i=0;i<max2;i++)
      kknd[i].id = i;  kknd = NULL;
    }// 一个完整的程序
    #define max1 2020
    #define max2 518using namespace std;struct commandu
    {
    int id;
    char sigcommand[max1];
    };int main(void)
    {
    int i;
    commandu *kknd = new commandu[max2]; for(i=0;i<max2;i++)
    kknd[i].id = i;  for(i=0; i<max2;i++)
        cout << kknd[i].id << ",";
      
      kknd = NULL;  return 0;
    }