제가 수업시간에 <div><div>FILE포인터를 선언하고 사용하는 예제를 배웠는데요</div> <div>근데 exit가 if문의 괄호안에 있는데 그렇다면 파일 r모드로 사용된 스트림인 fp를 fclose(fp)를 이용해서 닫기 전에 종료되니까</div> <div>계속 fp스트림이 열려있는 상태가 되나요?</div> <div>아니면 메인함수가 종료되면 전부 종료되니까 이렇게 사용해도 상관없나요?</div> <div><br></div> <div>#include <stdio.h></div> <div>#include <stdlib.h></div> <div><br></div> <div>void main(void)</div> <div>{</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>FILE * fp;</div> <div><br></div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>fp = fopen("a.txt", "r");</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>if(fp == NULL)</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>{</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>printf("파일이 존재하지 않습니다.\n");</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>exit(1);<span class="Apple-tab-span" style="white-space:pre;"> </span>// 프로그램을 종료시키는 함수 stdlib.h</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>}</div> <div><br></div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>// READ / WRITE</div> <div><br></div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>fclose(fp);</div> <div>}</div></div> <div><br></div> <div>그리고</div> <div>아래의 코드에 sizeof를 사용시에 메인함수에서는 <span style="font-size:9pt;line-height:1.5;">sizeof(str):6,</span><span style="font-size:9pt;line-height:1.5;">sizeof(ar):7</span><span style="font-size:9pt;line-height:1.5;"> 로 정상적으로 출력되지만</span></div> <div><span style="font-size:9pt;line-height:1.5;">메인함수에서 str과 ar의 배열이름을 prn 함수에 전달했을때 prn함수상에서는 배열의 크기가 각각 </span><span style="font-size:9pt;line-height:1.5;">sizeof(str):4,</span><span style="font-size:9pt;line-height:1.5;">sizeof(ar):4로</span><span style="font-size:9pt;line-height:1.5;"> 메인함수와 </span><span style="font-size:9pt;line-height:1.5;">다르게 출력되는데 왜 그런것인지 알고 싶네요.</span></div> <div><span style="font-size:9pt;line-height:1.5;">아시는 분 답변 주시면 좋겠네요.</span></div> <div><br></div> <div><br></div> <div><div>#include <stdio.h></div> <div>void prn(char *str,char* ar);</div> <div><br></div> <div>void main (void)</div> <div>{</div> <div>char str[]={'s','c','h','o','o','l'};</div> <div>char ar[]="school";</div> <div>printf("sizeof(str):%d\n",sizeof(str));</div> <div>printf("sizeof(ar):%d\n",sizeof(ar));</div> <div>prn(str,ar);</div> <div>}</div> <div>void prn(char* str,char *ar)</div> <div>{</div> <div>printf("sizeof(str):%d\n",sizeof(str));</div> <div>printf("sizeof(ar):%d\n",sizeof(ar));</div> <div>}</div></div> <div><br></div>
댓글 분란 또는 분쟁 때문에 전체 댓글이 블라인드 처리되었습니다.