C++中二维数组的动态创建与处理

    技术2022-05-11  24

    C++中用new动态创建二维数组的格式一般是这样:

    TYPE (*p)[N] = new TYPE [][N];

    其中,TYPE是某种类型,N是二维数组的列数。采用这种格式,列数必须指出,而行数无需指定。在这里,p的类型是TYPE*[N],即是指向一个有N列元素数组的指针。

    还有一种方法,可以不指定数组的列数:

    int **p;p = new int*[10];    //注意,int*[10]表示一个有10个元素的指针数组for (int i = 0; i != 10; ++i){    p[i] = new int[5];}

    这里是将p作为一个指向指针的指针,它指向一个包含10个元素的指针数组,并且每个元素指向一个有5个元素的数组,这样就构建了一个10行5列的数组。

    当数组使用完毕,释放空间的代码是:

    for(int i = 0; i != 5; i++){    delete[] p[i];} delete[] p;

    处理二维数组,可以用降维或是二维法。降维法是用一位数组来接受二维数组,将二维元素的首地址&a[0][0]作为参数,传递给函数,函数用int *接受。二维法就直接用二维数组来接受,但是需要指定列数。 


    最新回复(0)