如何在C++中使用动态三维数组

Posted gaozihan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在C++中使用动态三维数组相关的知识,希望对你有一定的参考价值。

用new 和 delete 的方法来实现。
注意:在使用new申请内存时,在使用过后,一定要采用delete来进行释放内存。
使用该方法创建动态数组时,需要由数组的角标依次向右进行创建;同时,也需要依照角标,从左到右来进行删除。

代码功能为:声明三维动态数组,将角标和进行相加并添加到mfc的list中,然后释放内存。
具体代码如下

//声明三维数组,长处分别为X_Length,Y_Length,Z_Length

    int X_Length = 5, Y_Length = 6, Z_Length = 7;//长度定义

    double ***DD;//声明指针
    DD = new double **[X_Length];//定义X的长度

    for (int x = 0;x < X_Length; x++)//在X的内部,定义Y
    {
        DD[x] = new double *[Y_Length];//定义Y的长度

        for (int y = 0; y < Y_Length; y++)//在xy的内部,定义Z
        {
            DD[x][y] = new double [Z_Length];//定义Z的长度
        }
    }

    //数组的声明完成,可以对数组进行操作
    //比如将数组的角标的和,并显示在表格中
    int count_number = 0;

    for (int i = 0;i < X_Length; i++)
    {
        for (int j = 0; j < Y_Length; j++)
        {
            for (int k = 0; k < Z_Length; k++)
            {
                DD[i][j][k] =  i + j + k;
                CString temp;
                m_list.InsertItem(count_number,_T(""));
                

                temp.Format(_T("%d"),count_number+1);m_list.SetItemText(count_number,0,temp);
                temp.Format(_T("%d"),i);m_list.SetItemText(count_number,1,temp);
                temp.Format(_T("%d"),j);m_list.SetItemText(count_number,2,temp);
                temp.Format(_T("%d"),k);m_list.SetItemText(count_number,3,temp);
                temp.Format(_T("%f"),DD[i][j][k]);m_list.SetItemText(count_number,4,temp);
                count_number++;
            }
        }
    }

    //用完数组后,用delete将内存释放
    for (int x = 0; x < X_Length; x++)
    {
        for (int y = 0; y < Y_Length; y++)
        {
            delete [] DD[x][y];//释放Z这一层
        }
    }
    for (int x = 0; x < X_Length; x++)
    {
        delete [] DD[x];//释放Y这一层
    }
    delete [] DD;//释放X这一层

在进行生成数组时,一定要弄清楚x、y、z之间的关系。

以上是关于如何在C++中使用动态三维数组的主要内容,如果未能解决你的问题,请参考以下文章

C++中如何判断动态数组为空?要具体代码,谢谢

如何将数据存储在动态二维数组中,该数组在 C++ 中的另一个结构中也使用的结构中声明

如何在 C++ 中正确使用动态分配的多维数组 [重复]

如何在 C++ 中动态分配数组

C++如何在用new创建动态数组的同时初始化数组

在android中动态创建选项卡并使用传入的参数加载片段