2012-02-21 120 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);