根据输入的行列数,动态开辟二维数组空间。代码如下:
#include <iostream>
using namespace std;
int main()
{
int row, col; //矩阵行列
cout << "Row: ";
cin >> row;
cout << "Col: ";
cin >> col;
int** p_p_int = new int*[row];
for (int i = 0; i < row; i++)
{
p_p_int[i] = new int[col];
}
int count = 0;
for (int m = 0; m < row; m++)
{
for (int n = 0; n < col; n++)
{
p_p_int[m][n] = count++;
}
}
cout << "----------Matrix----------" << endl;
for (int m = 0; m < row; m++)
{
for (int n = 0; n < col; n++)
{
cout << p_p_int[m][n] << " ";
}
cout << endl;
}
for (int j = 0; j < row; j++) //释放每行指针
{
delete [] p_p_int[j];
}
delete [] p_p_int; //释放指向行的指针
return 0;
}
需要注意指向指针的指针和二维数组在物理存储上的区别。(二维数组为线性连续存储,指向指针的指针一般占用的不连续的内存。)