请教高手:我有如下的程序:处理一个目录下的所有文本文件,当目录下只有一个文件时就不会出错,但是,当出现多个文件时,程序处理玩所有的文本后,在跳出此过程时就出现某一段内存不能读的错误,请高手指教:
谢谢!
void CHzFrequencyDlg::FolderFileFreq(CString m_FolderPath)
{
CFileFind find;/*对目录的文件进行查找*/
BOOL isFind; 
char *fName="";

/* 遍历m_Path目录下的文本文件 */
for ( int i=0;i<HZ_NUM;i++)
HZFreq[i]=0; if( m_FolderPath != "")
{
isFind = find.FindFile(m_FolderPath + "\\*.txt");

while(isFind)
{
isFind=find.FindNextFile();
fName=new char[strlen(find.GetFileName())+1+m_FolderPath.GetLength()];
strcpy(fName,m_FolderPath+"\\"+find.GetFileName());
HZFreqency(fName);
}
}
else
{
AfxMessageBox("输入的路径不能为空!!!");
m_Edit.SetFocus();
}
return;
}当成需要跳出时,就出现:xxxxx内存段 不可读的错误!
当把“HZFreqency(fName);”去掉就没有错误了。
void CHzFrequencyDlg::HZFreqency(CString Filename)
{//计算单个文件的汉字字频
FILE *inFile;
unsigned char c1,c2;
int ID;
if((inFile=fopen(Filename,"rb"))!=NULL)
{
while (!feof(inFile))
{
c1=(unsigned char)fgetc(inFile);
if(c1<128) continue;
if(c1<176)
{
c2=fgetc(inFile);
continue;
}
c2=(unsigned char)fgetc(inFile);
ID=HZ_ID(c1,c2);
HZFreq[ID]++;
}                                                                                       
fclose(inFile);

}
else
{
AfxMessageBox("打开文件时出错!!!");
}
//return;
}
请问是什么原因