繁体   English   中英

通过QTest将无效的参数传递给C运行时函数

[英]Invalid parameter passed to C runtime function with QTest

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

MSDN fgetc文档指出:

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM