1

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

#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'</p>

任何帮助,将不胜感激。

4

2 回答 2

2

利用

function(array)

代替

function(array[10][x])

您可能想阅读我几天前发表的这篇文章。

于 2012-12-06T14:13:30.163 回答
2

您将参数错误地传递给函数。应该function(array)像指出的那样。
其他意见:
1. 使用random()应该是random()%10;而不是random(10);,除非它的一些非标准功能。
2.int main()应该是int main(void)or 3. 你应该从say或int main(int argc, char **argv)
返回一个 int 值mainreturn 0return EXIT_SUCCESS

附加说明:
请注意,您可能无法在函数中获取数组的实际尺寸。如果您打算在函数中使用它,您可能应该考虑传递数组的维度。

希望这可以帮助!

于 2012-12-06T14:21:42.530 回答