ファイルポインタをメインで定義して、サブルーチンでオープンしているプログラムです。
下のfile1.c , file2.c , file3.c を結合して実行したところメモリを壊してるようなエラーが出てしまうのですが原因はなんでしょうか?
「file1.c」
extern int file2(FILE*)
extern int file3(FILE*)

int main(void)
{
___FILE *fp;
___file2(fp);
___file3(fp);
___return 0;
}

「file2.c」
int file2(FILE* fp)
{
___fp=fopen("test.txt","w");
___fprintf(fp,"テスト1");
___return 0;
}

「file3.c」
int file3(FILE* fp)
{
___fprintf(fp,"テスト2");
___fclose(fp);
___return 0;
}