我有这个2d动态数组,我想把它传递给一个函数,我该怎么做呢
int ** board;
board = new int*[boardsize];
//creates a multi dimensional dynamic array
for(int i = 0; i < boardsize; i++)
{
board[i] = new int[boardsize];
}
答案 0 :(得分:2)
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 :(得分:1)
void function(int *board[boardSize]){}
function(board);
答案 2 :(得分:1)
您应该定义一个函数来采用这种参数
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);
答案 3 :(得分:0)
您可以将指针传递给指针:
void someFunction(int** board)
{
}
答案 4 :(得分:0)
用于创建并将动态二维数组传递给任何函数的小代码。 `
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);
}
`