[問題]C觀念問題local與global

看板C_and_CPP (C/C++)作者 (nikeasyanzi)時間16年前 (2009/10/26 10:11), 編輯推噓1(103)
留言4則, 2人參與, 最新討論串1/1
#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)

10/26 10:13, , 1F
FILE** fptr
10/26 10:13, 1F

10/26 10:14, , 2F
喔喔 對 這似乎之前版上也有討論過!!
10/26 10:14, 2F

10/26 10:14, , 3F
謝謝^^
10/26 10:14, 3F

10/26 10:14, , 4F
因為你會修改到傳進來的FILE*,所以你需要FILE**
10/26 10:14, 4F
文章代碼(AID): #1AvGLNeE (C_and_CPP)
文章代碼(AID): #1AvGLNeE (C_and_CPP)