使用数组指针,分配一个指针数组,将其首地址保存在b中,然后再为指针数组的每个元素分配一个数组
int **b=new int*[row]; //分配一个指针数组,将其首地址保存在b中
for(i=0;i<row;i++) //为指针数组的每个元素分配一个数组
b[i]=new int[col];
该方法定义的动态二维数组的释放需先释放指针数组的每个元素指向的数组,然后再释放该指针数组:
for(i=0;i<row;i++)
{
delete [] b[i];
b[i]=NULL;
}
delete [] b;
b=NULL;

{
delete [] b[i];
b[i]=NULL;
}
delete [] b;
b=NULL;
#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
const int col = 10;
const int row = 10;
//new
int **a = new int*[row];
for( int i=0; i<row; i++ )
a[i] = new int[col];
//use
for( int i=0; i<row; i++ )
for( int j=0; j<col; j++ )
a[i][j] = i*col + j;
//show
for( int i=0; i<row; i++ )
{
for( int j=0; j<col; j++ )
cout<<a[i][j]<<" ";
cout<<endl;
}
//delete
for( int i=0; i<row; i++ )
delete [] a[row];
delete [] a;
//try
cout<<endl<<a[0][0];
}