正如标题所说。无论如何,是否允许用户在 C 中指定二维数组的两个参数?该数组将被调用到函数并在函数内更改。
函数至少需要第二个参数作为数组的大小,我不想为数组的大小指定一个任意大的数字。
我应该指出,我是一个非常新的 C 程序员,而且我对 C 总体上知之甚少。如果您向我展示了一个全新的概念并且我问了很多关于它的问题,请不要生气!
最佳答案
是的,从 C99 开始你可以写:
void func(int rows, int cols, int array[rows][cols])
{
// stuff...
}
并调用它:
int main()
{
int c = rand() % 10 + 1;
int arr1[6][c]; func(6, c, arr1);
int arr2[9][3]; func(9, 3, arr2);
size_t large = 100000000;
int (*arr3)[c] = malloc(sizeof(int[large][c]));
func(large, c, arr3);
free(arr3);
}
在 C11 中,出于政治原因,此功能被标记为“可选”,但是除 MSVC 之外的所有编译器都支持它。
关于c - C中如何让用户指定多维数组的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32598224/