将多维数组作为参数传递给c

时间:2012-12-06 14:11:19

标签: c function multidimensional-array arguments argument-passing

所以基本上,我要做的是将数组作为参数传递。我提出了这样的想法:

#include <stdio.h>
#include <stdlib.h>

int x;

void function(int array[][x]){
    //stuff here
}

int main(){
    x = random(10);
    int array[10][x];
    //initialize array
    function(array[10][x]);
}

我认为这应该有用,但它给了我一个注释:

  

期望'int(*)[(unsigned int)(x)]'但参数的类型为'int'

任何帮助都将不胜感激。

2 个答案:

答案 0 :(得分:3)

您正在将参数错误地传递给函数。 它应该是function(array)所指出的 其他观察:
1. random()的使用应该是random()%10;而不是random(10);,除非它有一些非标准功能。
2. int main()应为int main(void)int main(int argc, char **argv) 3.您应该从mainreturn 0return EXIT_SUCCESS

返回一个int值

附加说明:
请注意,您可能无法在函数中获得阵列的实际尺寸。可能你应该考虑传递数组的维度,以防你计划在函数中使用它。

希望这有帮助!

答案 1 :(得分:2)

使用

function(array)

而不是

function(array[10][x])

你可能想要阅读this post我几天前做过的。