次のCコードで問題が発生しています:
int main(void){
FILE* infile = fopen("file","r);
FILE* fp = NULL;
unsigned char* buffer = malloc(512);
while( fread(buffer,512,1,infile) > 0 ){ //reading a file block by block
if(buffer[0] == 0xff){
... //defining variable "name"
if(fp != NULL)fclose(fp);
fp = fopen(name,"w+");
fwrite(buffer,512,1,fp);
} else if(fp != NULL) {
fwrite(buffer,512,1,fp);
}
}
}
同じポインタを使用してfcloseした後、fopenできないようですが、なぜですか?メインのどこからでもポインタにアクセスできるようにする必要があるので、しばらくの間新しいポインタを宣言できません。
編集:なんてこった、問題は解決した。私はおそらくとても疲れていました。間違ったファイルをコンパイルしていました。ともかく...
ありがとう、皆さん!