【问题标题】:Invalid parameter passed to C runtime function with QTest使用 QTest 传递给 C 运行时函数的无效参数
【发布时间】:2012-11-19 10:15:10
【问题描述】:

我正在使用 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 创建的一个类。

【问题讨论】:

    标签: c++ qt


    【解决方案1】:

    MSDN fgetc documentation 状态:

    如果 [参数] 流为 NULL,则 fgetc 和 fgetwc 调用无效参数 处理程序,如Parameter Validation 中所述。

    因此,您应该检查fopen 是否返回NULL,在这种情况下,使用errno 查找错误类型。

    【讨论】:

      【解决方案2】:

      您的问题可能是在使用动态内存时犯了一些错误。 例如,您可以使用指向未分配内存的指针,等等。在getHexValues() 方法中检查您的代码。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-02-28
        • 2016-08-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多