我在写一个比较文件大小的方法(比如任何比较方法)。 这里是我的方法(我用void *
作为参数,因为程序的其它部分需要它):fseek() - 访问冲突读取
int compareFileSize(void * p1, void * p2)
{
int result;
FILE * f1, *f2;
f1 = (FILE *)p1;
f2 = (FILE *)p2;
fseek(f1, 0, SEEK_END);
fseek(f2, 0, SEEK_END);
result = ftell(f1) - ftell(f2);
fseek(f1, 0, SEEK_SET);
fseek(f2, 0, SEEK_SET);
return result;
}
当它到达FSEEK()它在调试器崩溃并说:“访问冲突阅读”。 在我调用方法之前,两个文件都是正确的,并且不是NULL
,我知道这一点,因为如果我以同样的方式查找,就在fopen之后,它可以正常工作。
为什么这不起作用,我该如何解决?
谢谢。
你为什么使用'void *'? –
@EdHeal我使用void *因为我有一个泛型方法来比较来自不同类型,整数,双精度,文件等等的东西... – shoham