我在寫一個比較文件大小的方法(比如任何比較方法)。 這裏是我的方法(我用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