FILE指针做参数问题
- C/C++ code
int OpenFile(FILE *fp,char *FileName,char *mod){ if (FileName == NULL) { return -1; } if ((fp = fopen(FileName,mod)) == NULL) { printf("error\n"); return FILE_OPEN_ERROR; } else { return 0; } }。。。。。。int main(int arg,char *arv[]){ FILE *fp = {0}; OpenFile(fp,"D:\\settings.txt","rb+"); GetIntVal(fp,NULL,NULL); CloseFile(fp); return 0;}
OpenFile运行成功,且fp有效,但由OpenFile返回之后fp为0,为什么?要保持住OpenFile之后的fp怎么做?
[解决办法]
你用引用指针就行了···
你那样传参也是拷贝一个指针。所以不形参的改变不影响实参···
[解决办法]
fp 虽然存的是地址,但本身还是变量,你直接传递变量名,就是形参传递。利用地址传递吧
[解决办法]
可以把指针返回···
[解决办法]