Arrays 有没有一种方法可以将多个2D数组传递给C中的一个函数?

Arrays 有没有一种方法可以将多个2D数组传递给C中的一个函数?,arrays,c,function,multidimensional-array,pass-by-reference,Arrays,C,Function,Multidimensional Array,Pass By Reference,我正在实现资源分配算法,我希望安全序列的计算发生在main()之外的函数中。所以我猜我需要将need、Available和MAX矩阵传递给函数。 我浏览过互联网,但找不到将多个二维数组传递给函数的方法。 甚至有可能这样做吗 void function_accepting_2d_array (size_t x, size_t y, int arr [x][y]); void function_accepting_2_2d_arrays (size_t x1, size_t y1, int arr

我正在实现资源分配算法,我希望安全序列的计算发生在main()之外的函数中。所以我猜我需要将need、Available和MAX矩阵传递给函数。
我浏览过互联网,但找不到将多个二维数组传递给函数的方法。 甚至有可能这样做吗

void function_accepting_2d_array (size_t x, size_t y, int arr [x][y]);

void function_accepting_2_2d_arrays (size_t x1, size_t y1, int arr1 [x1][y1],
                                     size_t x2, size_t y2, int arr2 [x2][y2]);

void function_accepting_n_2d_arrays (size_t n, size_t x, size_t y, int arr[n][x][y]);
或者,如果您不需要知道有多少个阵列:

void function_accepting_n_2d_arrays (size_t x, size_t y, int arr[][x][y]);
或者,如果您不需要知道有多少个阵列:

void function_accepting_n_2d_arrays (size_t x, size_t y, int arr[][x][y]);

“我正在实现资源分配算法,我希望安全序列的计算发生在main()之外的函数中。”我不知道这意味着什么。这与问题有关吗?如果是,请澄清。我不明白为什么不能将2d数组作为普通参数传递。当然,您也必须指定大小。“我浏览过互联网,找不到将多个二维数组传递给函数的方法。”您知道如何将多个“简单”参数(例如,
int
s)传递给函数吗?对我来说,你的问题是不清楚的,因为我得到的印象是,你认为只有一个参数是可能的……”“我正在实现资源分配算法,我希望安全序列的计算发生在main()之外的函数中。”我不知道这意味着什么。这与问题有关吗?如果是,请澄清。我不明白为什么不能将2d数组作为普通参数传递。当然,您也必须指定大小。“我浏览过互联网,找不到将多个二维数组传递给函数的方法。”您知道如何将多个“简单”参数(例如,
int
s)传递给函数吗?对我来说,你的问题是不清楚的,因为我得到的印象是,你认为只有一个参数是可能的…第一个是你猜测OP如何处理单个2D数组,不是吗?因为我认为这不是一个选项去做OP所要求的事情。我想,一些散文式的解释会提高你答案的帮助性。@Yunnosch没有很多方法可以做到这一点。唯一的另一种选择是放弃VLA,转而支持恒定尺寸。然后,有各种或多或少愚蠢的方法来模拟2D数组,要么使用1D数组形式的“损坏”数组,要么使用带有碎片数据的基于指针的查找表(不是2D数组而是其他数组)。我假设OP知道2D数组是什么,因为他们问的是2D数组。首先是你猜OP是如何处理单个2D数组的,不是吗?因为我认为这不是一个选项去做OP所要求的事情。我想,一些散文式的解释会提高你答案的帮助性。@Yunnosch没有很多方法可以做到这一点。唯一的另一种选择是放弃VLA,转而支持恒定尺寸。然后,有各种或多或少愚蠢的方法来模拟2D数组,要么使用1D数组形式的“损坏”数组,要么使用带有碎片数据的基于指针的查找表(不是2D数组而是其他数组)。我假设OP知道2D数组是什么,因为他们正在询问2D数组。