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 に答える