while(feof())的函数内嵌套fopen另一个文件为什么会出现access violation错误?
FILE *pFile_COOL=fopen("123.avi","rb");//以读的方式打开文件。long len_COOL = 4;
FileContent = new char [len_COOL+1];
memset(FileContent,0,len_COOL+1);//初始化FileContent
while (fread(FileContent,1,len_COOL,pFile_COOL) != 0)
{
if (FileContent[0] == 0x30&&FileContent[1] == 0x30&&FileContent[2] == 0x64&&FileContent[3] == 0x62)
{
fread(FileContent,1,len_COOL,pFile_COOL);
len_COOL = FileContent[3]*256*256*256 + FileContent[2]*256*256 + FileContent[1]*256 + FileContent[0];
break;
}
}
while (!feof(pFile_COOL))
{
int len = fread(FileContent,1,len_COOL,pFile_COOL);
sprintf(ch,"%d",nameID);
ch[strlen(ch)] = '\0';
strcat(ch,".bmp");
ch[strlen(ch)] = '\0';
FILE *pFile = fopen(ch,"wb");
for(int i=0 ; i<len ;i++)
fwrite(FileContent++,1,1,pFile);
fclose(pFile);
nameID ++;
fread(FileContent,1,4,pFile_COOL);
fread(FileContent,1,4,pFile_COOL);
len_COOL = FileContent[3]*256*256*256 + FileContent[2]*256*256 + FileContent[1]*256 + FileContent[0];
}
fclose(pFile_COOL);
MessageBox("1111");
程序编译时无错误,但是运行时会出错,后单步运行,发现在红色一行处会出现access violation错误,请位哪位大牛知道为什么?