【发布时间】:2014-07-05 15:52:34
【问题描述】:
我有这段代码,但它在第 5 行(fseek)抛出错误。
int cmpFILEd(void *aa,void *bb){
int size1,size2;
FILE *a=(FILE*)aa;
FILE *b=(FILE*)bb;
fseek(a,0,SEEK_END);
fseek(b,0,SEEK_END);
size1=ftell(a);
size2=ftell(b);
if(size1==size2)
return 0;
else if(size1>size2)
return 1;
else
return -1;
}
这段代码有什么问题?
_
编辑:错误:
cFILE.exe 中 0x77052865 (ntdll.dll) 处的第一次机会异常: 0xC0000008: 指定的句柄无效。
如果有这个异常的处理程序,程序可能是安全的 继续。
【问题讨论】:
-
请说明你是如何调用这个函数的。
-
试试
FILE *a=*(FILE**)aa; -
我真的建议您更改此函数的签名以获取 FILE* 而不是 void*。
-
@blue 你说得对,谢谢!!
-
现在我尝试通过将 2 FILE* 发送到您的原始函数来运行它并且它起作用了