数据结构(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]];
}
}