我有这个二维动态数组,我想将它传递给一个函数,我怎么会去这样做传递一个二维动态数组在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