数据结构(C++)二维数组的动态创建

2019-03-16  本文已影响0人  Vsion8980

一、动态存储空间的分配

C++使用new操作符进行存储空间的动态分配,它的值是一个指针,值向所分配的空间。所以必须声明为该类型的指针类型,例如:
int *x;
当进行动态分配时:
x=new int;
操作符new分配了一块能够存储一个整数的空间,并将该空间的指针赋给x,x是对整数指针的引用。
又可以简写为:
int *x = new int;

一维数组的动态创建

int *x=new int[n];

二维数组的动态创建

如果二维数组中至少有一维是未知的,那么数组空间必须在运行时利用new来创建。
例如:假定一个二维字符型数组,在编译时已知列数为5:

char (*c)[5];
try{c=new char [n][5];}
catch(){};

运行时,可以通过计算获取或输入获得。

为一个二维数组分配存储空间

template <class T>
void make2dArray(T** &x,int numberOfRows,T* &rowSize){//a为二维数组,第三个形参为一维数组
    x= new T* [numberOfRows];
    for (int i=0;i<numberOfRows;i++){
        x[i] = new T [rowSize[i]];
    }
}
上一篇下一篇

猜你喜欢

热点阅读