Передача 2d динамического массива в функцию в C ++ - PullRequest
2 голосов
/ 21 февраля 2012

У меня есть этот двумерный динамический массив, и я хочу передать его в функцию. Как бы я поступил так

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

        //creates  a multi dimensional dynamic array
        for(int i = 0; i < boardsize; i++)
        {
            board[i] = new int[boardsize];
        }

Ответы [ 5 ]

2 голосов
/ 21 февраля 2012
int **board; 
board = new int*[boardsize]; 

for (int i = 0; i < boardsize; i++)
    board[i] = new int[size];

Вам необходимо выделить вторую глубину массива.

Чтобы передать этот 2D-массив функции, реализующей его следующим образом:

fun1(int **);

Проверьте реализацию 2D-массива ниже.ссылка:

http://www.codeproject.com/Articles/21909/Introduction-to-dynamic-two-dimensional-arrays-in

1 голос
/ 21 февраля 2012
  void function(int *board[boardSize]){}


  function(board);
1 голос
/ 21 февраля 2012

Вы должны определить функцию для такого аргумента

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

func(board);

Если boardsize или size не глобальны, вы можете передать их через параметры.

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

func(board, boardsize, size);
0 голосов
/ 23 мая 2019

Небольшой код для создания и передачи динамического двухмерного массива в любую функцию. `

 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);

}

`

0 голосов
/ 21 февраля 2012

Вы можете передать указатель на указатель:

void someFunction(int** board)
{


}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...