首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在C中传递多维字符数组的函数?

如何在C中传递多维字符数组的函数?
EN

Stack Overflow用户
提问于 2014-10-21 21:01:37
回答 1查看 718关注 0票数 2

这是我的代码,它不起作用。当我像下面的grid[r][c]那样传递char数组时,它会生成这些错误。

代码语言:javascript
复制
[Error] use of parameter 'r' outside function body

[Error] use of parameter 'c' outside function body

当我像下面的grid[][c]那样传递char数组时,它会生成这些错误。

代码语言:javascript
复制
[Error] use of parameter 'c' outside function body

当我像下面的grid[][]那样传递char数组时,它会生成这些错误。

代码语言:javascript
复制
[Error] declaration of 'grid' as multidimensional array must have bounds for all dimensions except the first 

当我像这样传递这样的grid[1][2]时,它运行得非常好,也就是只传递一个整数。

我被困在这里,我不知道该怎么办?

如何解决这个问题??帮帮我!

提前谢谢!

代码语言:javascript
复制
void dfs(int r, int c, int pacman_r, int pacman_c, int food_r, int food_c, char grid[r][c]) {
    //logic here
}
int main(void) {
    int r, c;
    int pacman_r, pacman_c;
    int food_r, food_c;
    scanf( "%d %d", &pacman_r, &pacman_c);
    scanf( "%d %d", &food_r, &food_c);
    scanf( "%d %d", &r, &c);
    char grid[r][c];
    for( int i=0; i<r; i++) {
        scanf("%s[^\\n]%*c", grid[i]);
    }
    dfs( r, c, pacman_r, pacman_c, food_r, food_c, grid);
    return 0;
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-10-21 21:22:29

您应该将参数作为char*传递,然后将其用作指向数组的扁平实例的指针。

代码语言:javascript
复制
void fn(char* grid, int c){
    printf("%c", (grid+n*c)[m]);
}

这会印上“格瑞顿”

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26496238

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档