请问在VC中有没有二维和三维的动态数组,如果有,能给个用法示范一下吗

解决方案 »

  1.   

    int** pp=new int*[10];
    for(int i=0;i<10;++i)
        pp[i]=new int[8];
    这就是一个int[10][8]的动态数组
      

  2.   

    1. 演示形为int[2][3]的二维动态数组
    ///////////////////////////////////////////////////////////////////
    int n1, n2;const int DIM1 = 2;
    const int DIM2 = 3;// 构造数组
    int **ppi = new int*[DIM1];
    for(n1 = 0; n1 < DIM1; n1++)
    {
        ppi[n1] = new int[DIM2];
    }// 填充数据
    for(n1 = 0; n1 < DIM1; n1++)
    {
        for(n2 = 0; n2 < DIM2; n2++)
        {
            ppi[n1][n2] = n1 * 10 + n2;
        }
    }// 输出
    for(n1 = 0; n1 < DIM1; n1++)
    {
        for(n2 = 0; n2 < DIM2; n2++)
        {
            afxDump << "ppi[" << n1 << "][" << n2 << "] = " 
                << ppi[n1][n2] << "\n";
        }
    }// 释放数组
    for(n1 = 0; n1 < DIM1; n1++)
    {
        delete [] ppi[n1];
    }
    delete [] ppi;
    2. 三维动态数组(int[2][3][4])
    ///////////////////////////////////////////////////////////////////int n1, n2, n3;const int DIM1 = 2;
    const int DIM2 = 3;
    const int DIM3 = 4;// 构造数组
    int ***ppi = new int**[DIM1];
    for(n1 = 0; n1 < DIM1; n1++)
    {
        ppi[n1] = new int*[DIM2];
        for(n2 = 0; n2 < DIM2; n2++)
        {
            ppi[n1][n2] = new int[DIM3];
        }
    }// 填充数据
    for(n1 = 0; n1 < DIM1; n1++)
    {
        for(n2 = 0; n2 < DIM2; n2++)
        {
            for(n3 = 0; n3 < DIM3; n3++)
            {
                ppi[n1][n2][n3] = n1 * 100 + n2 * 10 + n3;
            }
        }
    }// 输出
    for(n1 = 0; n1 < DIM1; n1++)
    {
        for(n2 = 0; n2 < DIM2; n2++)
        {
            for(n3 = 0; n3 < DIM3; n3++)
            {
                afxDump << "ppi[" << n1 << "][" << n2 << "][" << n3 << "] = "
                        << ppi[n1][n2][n3] << "\n";
            }
        }
    }// 释放数组
    for(n1 = 0; n1 < DIM1; n1++)
    {
        for(n2 = 0; n2 < DIM2; n2++)
        {
            delete [] ppi[n1][n2];
        }
        delete [] ppi[n1];
    }
    delete [] ppi;
      

  3.   

    不能,
    for(n1 = 0; n1 < DIM1; n1++)
    {
        ppi[n1] = new int*[DIM2];你说,怎么保证 ppi[0]和ppi[1]挨着?