我试图使2x2数组,初始化为0,并将其传递给函数。
我试过用
初始化它int array[2][2] = {0}
,但只有前5个值为0。
对我来说更大的问题是将数组传递给函数。
一个二维数组是指针指向指针,对吗?所以我应该可以把它作为;
传递function(**array);
正确吗?
当我试图在函数中访问这个数组时,我可以以
的格式访问它吗?void function (int **array){
array[0][2] = choice
}
,因为这不起作用,我假设我必须在某个地方定义数组的大小。
谢谢。
"一个二维数组是指针指向指针,对吗?"——是错误的。二维数组就是一个二维数组;即一个由一维数组组成的数组。
如果你想传递一个2x2数组给函数,使用一个指向2x2数组的指针:
static void function (int (*array)[2][2]){
//(*array)[0][2] is out of bounds...
(*array)[1][0] = 3;
}
int main(void) {
int array[2][2] = {{0}};
function(&array);
return 0;
}