我们知道,C++建立静态数组很简单:int array[row][col]
但是要用动态方式或者需要用int **调用数组时,就必须知道该怎么用了:
二维数组可以看成是数组的数组或者包含数组的数组,所以我们可以先使用双重指针建立一个存放指针(将被用来作数组名)的数组(指针),然后再把这个数组的每一项元素定义为一个数组。说得有点绕,看代码:
示例代码:
#include <iostream>
using namespace std;
int main()
{
//int array[3][3];
int rows, columns, k = 0;
cin>>rows>>columns;
int **array = new int*[rows];
for(int i=0; i < rows; i++)
array[i] = new int[columns];
for(int i=0; i < rows; i++)
for(int j=0; j < columns; j++)
array[i][j] = k++;
for(int i=0; i < rows; i++)
{
for(int j=0; j < columns; j++)
cout<<array[i][j]<<" ";
cout<<endl;
}
for(int i =0; i < rows; i++)
{
delete array[i];
array[i] = NULL;
}
delete []array;
array = NULL;
return 0;
}
/**
输入:
3 3
输出:
0 1 2
3 4 5
6 7 8
*/
另外可以参考下面的一篇博客: