一维动态数组:
初始化:int *p=new int[n];
销毁:delete[] p;
二维动态数组:
初始化:
int **p=new int* [row];
for(i=0;i<row;i++){
p[i]=new int[cloum];
}
销毁:
for(i=0;i<row;i++){
delete[] p[i];
}
p=NULL;
例子:使用动态数组去求矩阵相乘
int row,cloum,row1,cloum1;
cout<<"请输入第一个二维数组的行和列:"<<endl;
cin>>row>>cloum;
//输入动态二维数组
int **p=new int* [row];
int i;
for(i=0;i<row;i++){
p[i]=new int[cloum];
}
int j;
cout<<"请输入第一个二维数列:"<<endl;
for(i=0;i<row;i++){
for(j=0;j<cloum;j++){
cin>>p[i][j];
}
}
while(1){
cout<<"请输入第二个二维数组的行和列:"<<endl;
cin>>row1>>cloum1;
if(cloum!=row1){
cout<<"重新输入,无法计算"<<endl;
continue;
}else{
break;
}
}
int **p1=new int* [row1];
for(i=0;i<row1;i++){
p1[i]=new int[cloum1];
}
cout<<"请输入第二个二维数列:"<<endl;
for(i=0;i<row1;i++){
for(j=0;j<cloum1;j++){
cin>>p1[i][j];
}
}
cout<<"矩阵相乘的结果:"<<endl;
int k,a[row][cloum1];
for(i=0;i<row;i++){
for(j=0;j<cloum1;j++){
a[i][j]=0; //初始化结果矩阵
for(k=0;k<cloum;k++){
a[i][j]+=p[i][k]*p1[k][j];
}
}
}
for(i=0;i<row;i++){
for(j=0;j<cloum1;j++){
cout<<a[i][j]<<" ";
}
cout<<endl;
}
for(i=0;i<row;i++){
delete[] p[i];
}
p=NULL;
for(i=0;i<row1;i++){
delete[] p1[i];
}
p1=NULL;
结果截图: