我正在尝试编写一个直接操作数组的函数。我不想返回任何内容,所以显然我将以某种方式使用指针。
void makeGraph(some parameter) {
//manipulates array
}
int main() {
char graph[40][60];
makeGraph(????)
}
我无法弄清楚要传递的参数。任何帮助将不胜感激。
答案 0 :(得分:4)
我正在尝试编写一个直接操作数组的函数。我不想返回任何内容,所以显然我会以某种方式使用指针。
在 C 中,当您自动传递array
时,数组的基址由被调用函数的形式参数存储(此处为{{1}因此,对形式参数所做的任何更改也会影响调用函数的实际参数(在您的情况下为makeGraph()
)。
所以你可以这样做:
main()
甚至还有其他方法可以在 C 中传递数组。看看这篇文章:Correct way of passing 2 dimensional array into a function
答案 1 :(得分:2)
在C数组中可以作为指向其第一个元素的指针传递。函数原型可以是这些
中的任何一个void makeGraph(char graph[40][60]);
void makeGraph(char graph[][60]);
void makeGraph(char (*graph)[60]);
要调用此函数,您可以将参数传递为
makeGraph(graph); //or
makeGraph(&graph[0]);
答案 2 :(得分:2)
正如其他人所说。简单
void makeGraph(char graph[40][60]
{ // access array elements as graph[x][y] x and y are any number with in the array size
}
int main(void)
{ //in main you can call it this way:
char graph[40][60];
makeGraph(graph)
}