kk。私は人生を理解する必要があります。ファイル ポインタである fp を新しい関数に渡してそこで開くと、fclose(fp) によってセグ フォールトが発生します。そして、ファイル ポインタ fp が開かれていないことを発見しました。
main(int argc, char *argv[])
{
File *fp;
//*argv == filename
functionToOpenFile(fp,*argv);
//do stuff
fclose(fp);
}
functionToOpenFile(File *fp, char *filename)
{
fp = fopen(filename,"w");
//error handling not shown
}
機能する私の解決策は、ファイルへのポインターへのポインターである fp のアドレスを渡すことです。なぜそれが物事を変えるのか理解できない
main(int argc, char *argv[])
{
File *fp;
//*argv == filename
functionToOpenFile(&fp,*argv);
//do stuff
fclose(fp);
}
functionToOpenFile(File **fp, char *filename)
{
*fp = fopen(filename,"w");
//error handling not shown
}
-オースチン