我有這個二維動態數組,我想將它傳遞給一個函數,我怎麼會去這樣做傳遞一個二維動態數組在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];
}
我有這個二維動態數組,我想將它傳遞給一個函數,我怎麼會去這樣做傳遞一個二維動態數組在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];
}
int **board;
board = new int*[boardsize];
for (int i = 0; i < boardsize; i++)
board[i] = new int[size];
您需要分配陣列的所述第二深度。
要通過這個二維數組的函數實現它想:
fun1(int **);
檢查下面鏈接的二維數組實現:
http://www.codeproject.com/Articles/21909/Introduction-to-dynamic-two-dimensional-arrays-in
你可以傳遞一個指針指針:
void someFunction(int** board)
{
}
void function(int *board[boardSize]){}
function(board);
你應該定義一個函數來採取這種論調
void func(int **board) {
for (int i=0; i<boardsize; ++i) {
board[i] = new int [size];
}
}
func(board);
如果boardsize
或size
不是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);
那不是一個2D array..its一二維數組'int *'s。 – Naveen 2012-02-21 07:32:53
這將是我循環後分配每個位置 – 2012-02-21 07:35:40
@SteffanHarris:真正的二維數組之間有一個很大的區別,它最終是一個連續的內存塊和這個動態分配的'數組陣列';數據不保證是連續的 – KillianDS 2012-02-21 07:37:40