gpt4 book ai didi

c - 将二维字符数组传递给 C 中的函数

转载 作者:太空宇宙 更新时间:2023-11-04 03:37:13 24 4
gpt4 key购买 nike

我是一名初级程序员,对将二维数组传递给函数感到困惑。我认为这可能只是一个简单的语法问题。我一直在寻找答案,但我发现的任何东西似乎都没有帮助,或者超出了我的水平,我无法理解。

我将主函数中的数组和函数标识为,初始化后,尝试调用它:

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

int const ROWS = 8;
int const COLS = 8;

int main(int argc, char** argv) {

char board[ROWS][COLS];

bool canReach(char board[][], int i, int j);

//initialize array

//values of i and j given in a for loop

canReach(board, i, j);

return (EXIT_SUCCESS);
}

在 main 函数之外编写函数时,我定义它的方式与在 main 函数中所做的完全相同。

bool canReach(char board[][], int i, int j){
//Functions purpose
}

当我尝试构建程序时,出现两次此错误并且程序未构建:

error: array has incomplete element type 'char[][]'
bool canReach(char board[][], int i, int j)
^

请注意,我试图将整个数组传递给函数,而不仅仅是单个值。我该怎么做才能解决这个问题?如果它不必使用指针,我将不胜感激,因为我发现它们很困惑。此外,我试图遗漏一些我认为不重要的东西,但我可能遗漏了一些我需要的东西,或者保留了一些我不需要的东西。感谢您花时间帮助这位初级程序员!

最佳答案

您可以将数组作为函数参数传递,并定义其大小。

bool canReach(char board[ROWS][COLS], int i, int j);

当大小未知时,指针就是方法。

bool canReach(char* board, int i, int j);

你应该知道,arrays != pointers 但是指针可以存储数组的地址。

关于c - 将二维字符数组传递给 C 中的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31620577/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com