动态开辟二维数组主要有两种方法:
1、用new在堆上开辟;
2、用vector开辟。
比如用new开辟:
int** output = new int *[row];
for(int i=0;i<row;i++)
{ output[i] = new int[col]; //初始化二维数组
memset(output[i],0,sizeof(int)*col); //初始化为0
}
用Delete销毁内存空间,一定要记得
for (i = 0; i < row; i++)
{
delete []output[i];output [i] = NULL;
}
delete []output;output = NULL;
比如用vector开辟:
vector > output(row, vector(col)); //声明一个二维数组,注意这里的空格不能少
此处其实可以不进行初始化,默认为0,如果要初始化,需要通过循环进行初始化。