我正在使用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
创建的一个类。
答案 0 :(得分:1)
如果[参数]流为NULL,则fgetc和fgetwc调用无效参数 处理程序,如Parameter Validation中所述。
因此,您应该检查fopen
是否返回NULL
,在这种情况下,请找到errno
的错误类型。
答案 1 :(得分:0)
可能您的问题是在使用动态内存时出现了一些错误。
例如,您可以使用指向未分配内存的指针。请使用getHexValues()
方法检查您的代码。