我想将我使用 malloc 定义的二维数组传递给函数。首先,我使用博客文章中的代码定义数组。
int** Make2DIntArray(int arraySizeX, int arraySizeY) {
int** theArray;
theArray = (int**) malloc(arraySizeX*sizeof(int*));
for (int i = 0; i < arraySizeX; i++)
theArray[i] = (int*) malloc(arraySizeY*sizeof(int));
return theArray;
}
int main(){
int** myArray = Make2DIntArray(nx, ny);
}
然后我可以将它用作 myArray[i][j]。在那之后,我想把这个数组传递给一个函数。我试着像这样传递它:
function(myArray); //function call
//function
void function(int myArray[][]){
//function code goes here
}
但这是错误的。问题是数组的大小每次都不一样。我还尝试为数组的列定义最大大小并像这样使用它:
#define COLUMNMAX 100
function(myArray); //function call
//function
void function(int myArray[][COLUMNMAX]){
//function code goes here
}
但我得到了错误:
形式参数 1 的类型不完整。我该如何传递它?