作者nikeasyanzi (nikeasyanzi)
看板C_and_CPP
标题[问题]C观念问题local与global
时间Mon Oct 26 10:11:31 2009
#include<stdio.h>
#include<stdlib.h>
#include <string.h>
#include <ctype.h>
#define Size_Of_Tmp 512
int ReadFile(char *filename,FILE *fptr){
char tmp[Size_Of_Tmp];
fptr=fopen(filename,"r");
if(fptr==NULL){
printf("%s open error\n",filename);
printf("按任意键结束程式\n");
fgets(tmp,Size_Of_Tmp,stdin);
exit(0);
}
return 0;
}
int main(){
FILE *ptr=NULL;
char tmp[Size_Of_Tmp];
ReadFile("orz",ptr);
memset(tmp,'\0',sizeof(tmp));
while(fgets(tmp,sizeof(tmp),ptr)){
printf("%s\n",tmp);
memset(tmp,'\0',sizeof(tmp));
}
return 0;
}
我想请问一下为何这样会有错误?? 我并非没遵守local与global的规范
问题似乎出在ptr上 进入ReadFile时 ptr有正确被assign
但出了function ptr就被归零了!!
原因是??
--
CyberPanel 5000CP 换 NT.500
http://myurl.com.tw/05bd
EmailCash 5000e 换 NT.500
http://myurl.com.tw/rgdq
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 114.137.204.228
※ 编辑: nikeasyanzi 来自: 114.137.204.228 (10/26 10:12)
1F:推 Bencrie:FILE** fptr 10/26 10:13
2F:→ nikeasyanzi:喔喔 对 这似乎之前版上也有讨论过!! 10/26 10:14
3F:→ nikeasyanzi:谢谢^^ 10/26 10:14
4F:→ Bencrie:因为你会修改到传进来的FILE*,所以你需要FILE** 10/26 10:14