动态数组的分配与释放

一维数组
int m = 5;
int *arr = new int [m];
delete [] arr;
二维数组
#include <iostream>
using namespace std;

int main() 
{
    int m = 5, n = 10, v = 0;

    //创建指针数组
    int **arr = new int* [m];

    //为指针数组的每个元素创建一个一维数组,得到arr[m][n]
    for (int i = 0; i < m; i++)
    {
        arr[i] = new int[n];
    }

    for (int i = 0; i < m; i++)
    {
        for (int j = 0; j < n; j++)
        {
            arr[i][j] = v;
            v++;
        }
    }

    for (int i = 0; i < m; i++)
    {
        for (int j = 0; j < n; j++)
        {
            cout << arr[i][j] << " ";
        }
        cout << endl;
    }

    //使用后先删除一维数组
    for (int i = 0; i < m; i++)
    {
        delete [] arr[i];
    }

    //再删除指针数组
    delete arr;

    //也可以直接delete [] arr;

    return 0;
}
三维数组
int ***array3D;
int m = 5, n = 10, h = 20;

arr = new int **[m];
for( int i=0; i<m; i++ )
{
    arr[i] = new int *[n];
    for( int j=0; j<n; j++ )
    {
         arr[i][j] = new int [h];
    }
}
//释放
for( int i=0; i<m; i++ )
{
    for( int j=0; j<n; j++ )
    {
         delete arr[i][j];
    }
    delete arr[i];
}
delete arr;
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 基础篇NumPy的主要对象是同种元素的多维数组。这是一个所有的元素都是一种类型、通过一个正整数元组索引的元素表格(...
    oyan99阅读 5,291评论 0 18
  • C语言是面向过程的,而C++是面向对象的 C和C++的区别: C是一个结构化语言,它的重点在于算法和数据结构。C程...
    小辰带你看世界阅读 13,929评论 0 2
  • 原文1原文2一、数组指针(也称行指针) 定义: int (* p)[n];将二维数组赋给一指针,应这样赋值: 所以...
    Jowney阅读 388评论 0 1
  • 谨记 每个人心中都有一片海,自己不扬帆,没人帮您启航,久了就是一片死海。人生,就是一场自己与自己的较量:让积极打败...
    长风留言阅读 8,146评论 6 10
  • 来这之前,我一直在想,沧海桑田的变化,有什么能够让人过了千年还会被记得。 在看到吴哥窟的时候,那震撼的建筑,墙壁上...
    白小璨阅读 237评论 0 0

友情链接更多精彩内容