使用QTest传递给C运行时函数的参数无效

时间:2012-11-19 10:15:11

标签: c++ qt

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

2 个答案:

答案 0 :(得分:1)

MSDN fgetc documentation州:

  

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

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

答案 1 :(得分:0)

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