【发布时间】:2009-09-30 23:36:51
【问题描述】:
我正在尝试编写一个函数来交换二维数组中的 2 个元素:
void swap(int surface[][], int x1, int y1, int x2, int y2) {
int temp = surface[x1][y1];
surface[x1][y1] = surface[x2][y2];
surface[x2][y2] = temp;
}
但是,当我尝试编译它 (gcc) 时,我收到以下错误消息:
Sim_Annealing.c: In function `swap':
Sim_Annealing.c:7: error: invalid use of array with unspecified bounds
Sim_Annealing.c:8: error: invalid use of array with unspecified bounds
Sim_Annealing.c:8: error: invalid use of array with unspecified bounds
Sim_Annealing.c:9: error: invalid use of array with unspecified bounds
为了将二维数组作为函数参数,我需要做一些特殊的事情吗?
感谢您的帮助。如果您知道数组作为函数参数的任何好的参考资料,请按我的方式发送:)
【问题讨论】:
-
请在您投票关闭“完全重复”时发表评论,说明什么这是完全重复的。
-
@Lutz,您可以通过单击“关闭”然后投票“完全重复”来查看建议的重复项列表。在这种情况下,这个人提出了这个问题:stackoverflow.com/questions/4051/…
-
但是,没有足够代表投票关闭的用户无法以这种方式查看建议的副本。在很多情况下,这将包括最初提出问题的人。
-
@stephentyrone:无论声誉如何,您都可以随时投票结束自己的问题。因此,您可以在实际关闭之前查看您自己问题的关闭原因。
-
好的,我添加了一个使用 C99 引入的完全通用的可变长度数组参数的示例。请注意,C99 最初并未得到广泛支持,而且大多数实现仍不完全符合要求。
标签: c arrays function-parameter