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 的地址,这是一个指向 File 的指针。我不明白为什么它会改变事情
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
}
-奥斯汀