0

Qt Creator を使用して Qt プロジェクトを開発していますが、すべて正常に動作しますが、QTest を使用して単体テストの部分に到達すると、コンパイル後に「無効なパラメーターが C ランタイム関数に渡されました」というエラーが表示されます。

誰でも問題の原因を見つけるのを手伝ってもらえますか? cstdio関数の使用によるものですか、.proそれとも構成と関係がありますか?

これは私が実装したテスト方法ですが、うまくいきませんでした:

void TestFichier::testLoad()
{
    Fichier a;
    a.load("input.txt");
    FILE *f=fopen("input.txt","rb");
    int c;
    int i,*tab=a.getHexValues();
    for (i=0;i<3;i++)
        c=fgetc(f);
    fclose(f);
    QCOMPARE(tab[2],c);
}

Fichier はメソッドで作成したクラスですload

4

2 に答える 2

1

MSDN fgetc ドキュメントには次のように記載されています。

[パラメーター] ストリームが NULL の場合、fgetc と fgetwc は無効なパラメーター ハンドラーを呼び出します (「パラメーターの検証」を参照) 。

したがって、 がfopen返されるかどうかを確認NULLし、その場合は でエラーの種類を見つける必要がありますerrno

于 2012-11-19T20:07:26.390 に答える
0

おそらく、あなたの問題は、動的メモリを操作しているときにエラーが発生することです。たとえば、未割り当てメモリなどへのポインタを使用できます。getHexValues()メソッドでコードを確認してください。

于 2012-11-19T18:49:47.017 に答える