无法在C中传递2D字符数组(似乎只传递第一个索引)

无法在C中传递2D字符数组(似乎只传递第一个索引),c,arrays,function,multidimensional-array,C,Arrays,Function,Multidimensional Array,这是我写的函数的一部分。文件[120][80],一个由行和字符组成的数组,被传入 void Print(char File[120][80], int Lines, char* COMMAND) { //Print whole file. if (!spaces(COMMAND)) { int i = 0; for (i; i<Lines; i++) { printf("%i===%s", i+1, File[i]);

这是我写的函数的一部分。文件[120][80],一个由行和字符组成的数组,被传入

void Print(char File[120][80], int Lines, char* COMMAND) {
    //Print whole file.
    if (!spaces(COMMAND)) {
        int i = 0;
        for (i; i<Lines; i++) {
            printf("%i===%s", i+1, File[i]);
        }
    }
}

因此,似乎实际上只传递了第一个索引。

问题可能在于如何调用
Print
或初始化传递的数组——如果我添加以下内容,它对我来说就可以了:

int spaces(const char *s) { return 0; }

int main()
{
    char File[][80] = {
        "Line1\n", "Line2\n", "Line3\n", "Line4\n"
    };
    Print(File, 4, "test");
    return 0;
}

其他字符串似乎为空。如何读取文件?此代码正确()。问题一定出在读取文件的代码上。文件是用fgetc读取的。我签入main(),数组已正确填充。我将其称为Print(文件、行、命令);。数组定义为char文件[120][80];。如何初始化
文件
?那么,它不包含任何内容,因此打印例程不打印任何内容也就不足为奇了……稍后会填充它,我可以成功地检查main()中的内容。@Alexandra
char File[120][80]是一种声明,而不是初始化。“稍后填充”的代码很可能是您的初始化。这就是克里斯想看到的代码。
int spaces(const char *s) { return 0; }

int main()
{
    char File[][80] = {
        "Line1\n", "Line2\n", "Line3\n", "Line4\n"
    };
    Print(File, 4, "test");
    return 0;
}