FILE * 只能定义在main函数里吗
程序代码:
int open_file(FILE *fp) { if((fp=fopen("1.txt","wb"))==NULL) return 0 return 1; } int write_file(FILE *fp) { if(fp==NULL) { printf("NO file\n"); return 0; } fwrite("1234",4,1,fp); return 1; } int main() { int flag; FILE *fp=NULL flag=open_file(fp); if(flag) write_file(fp); return 0; }
但是结果总是文件生成成功,但是里面没有内容。调试的时候发现,在open_file里面创建文件时,fp里的值是正常的,一从open_file里出来到main函数和write_file函数,fp的各项值都是
CXX0030:错误,无法计算表达式的值
不明白为什么会这样,参数是带着指针走的,赋值以后为什么出了open_file函数就无法计算了