c++二维数组内存动态分配与参数传递

来源:互联网 发布:公安局网络安全管理岗 编辑:程序博客网 时间:2024/06/05 16:23

写程序时遇到了二位数组的内存动态分配问题  后来解决  与大家分享  欢迎指正!

#include<iostream>
using namespace std;

void array(int **a,int m,int n);

void main()
{
 int m,n;
 int **arr;//定义一个指向指针的指针
 cout<<"please input the row and the col:"<<endl;
 cin>>m>>n;
 //在内存中开辟一块空间 用来存放指向每行首元素的指针
 arr=new int*[m];
    for (int i=0;i<m;i++)
           arr[i]=new int[n];//在每行指针指向的地方开辟出int n大小的空间
 cout<<"please input the array number:"<<endl;
    for(i=0;i<m;i++)
 {
  for(int j=0;j<n;j++)
   cin>>arr[i][j];
 }

    array((int**) arr,m,n);

 for(i=0;i<m;i++)
 //释放内存
 delete[] arr[i];
 delete[] arr;

}


void array(int **a,int m,int n)
{
    for(int i=0;i<m;i++)
 {
  for(int j=0;j<n;j++)
   cout<<a[i][j]<<" ";
  cout<<endl;
 }
}