C++ 将2d动态数组传递给C++;

C++ 将2d动态数组传递给C++;,c++,arrays,function,C++,Arrays,Function,我有这个2d动态数组,我想把它传递给一个函数,我该怎么做呢 int ** board; board = new int*[boardsize]; //creates a multi dimensional dynamic array for(int i = 0; i < boardsize; i++) { board[i] = new int[boardsize]; } int**

我有这个2d动态数组,我想把它传递给一个函数,我该怎么做呢

int ** board;
        board = new int*[boardsize];

        //creates  a multi dimensional dynamic array
        for(int i = 0; i < boardsize; i++)
        {
            board[i] = new int[boardsize];
        }
int**板;
线路板=新int*[线路板尺寸];
//创建多维动态数组
对于(int i=0;i
您可以将指针传递给指针:

void someFunction(int** board)
{


}

您应该定义一个函数来接受这种参数

void func(int **board) {
    for (int i=0; i<boardsize; ++i) {
        board[i] = new int [size]; 
    }
}

func(board);
检查以下链接上的二维阵列实现:


用于创建动态二维数组并将其传递给任何函数的小代码。 `

void DDArray(int**a,int x,int y)
{
int i,j;

对于(i=0;它不是一个二维数组..它是一个一维数组,由
int*
s组成。在我循环通过它之后,它将是一个分配数组position@SteffanHarris:真正的2D数组(最终是一个连续的内存块)与动态分配的“数组数组”之间有很大的区别;其中数据不保证是连续的可能的副本
void func(int **board) {
    for (int i=0; i<boardsize; ++i) {
        board[i] = new int [size]; 
    }
}

func(board);
void func(int **board, int boardsize, int size) {
    for (int i=0; i<boardsize; ++i) {
        board[i] = new int [size];
    }
}

func(board, boardsize, size);
int **board; 
board = new int*[boardsize]; 

for (int i = 0; i < boardsize; i++)
    board[i] = new int[size];
fun1(int **);
 void DDArray(int **a,int x,int y)
 {
   int i,j;
    for(i=0;i<3;i++)
     {
      for(j=0;j<5;j++)
       {
         cout<<a[i][j]<<"  ";
       }

       cout<<"\n";
     }
  }

int main()
{
  int r=3,c=5,i,j;
  int** arr=new int*[r];
  for( i=0;i<r;i++)
   {
    arr[i]=new int[c];
   }

  for(i=0;i<r;i++)
   {
     for(j=0;j<c;j++)
      {
        cout<<"Enter element at position"<<i+1<<j+1;
        cin>>arr[i][j];
      }
   }
   DDArray(arr,r,c);

}