0

这是我编写的函数的一部分。File[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]);
        }
    }
}

运行它的结果(对于 4 行文件)是:

1===Line 1.
2===3===4===

所以似乎只有第一个索引实际上被传递了。

4

1 回答 1

0

问题可能在于您如何调用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;
}
于 2012-07-07T18:38:23.853 回答