2012-02-21 91 views
1

我有这个二维动态数组,我想将它传递给一个函数,我怎么会去这样做传递一个二维动态数组在C++函数

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

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

那不是一个2D array..its一二维数组'int *'s。 – Naveen 2012-02-21 07:32:53

+0

这将是我循环后分配每个位置 – 2012-02-21 07:35:40

+0

@SteffanHarris:真正的二维数组之间有一个很大的区别,它最终是一个连续的内存块和这个动态分配的'数组阵列';数据不保证是连续的 – KillianDS 2012-02-21 07:37:40

回答

0

你可以传递一个指针指针:

void someFunction(int** board) 
{ 


} 
1
void function(int *board[boardSize]){} 


    function(board); 
1

你应该定义一个函数来采取这种论调

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

func(board); 

如果boardsizesize不是globlal,则可以通过参数传递它。

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

func(board, boardsize, size);