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