• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

메모리 레이아웃에서 스트림의 위치

23.02.25 16:36 작성 23.02.26 01:33 수정 조회수 240

0

fopen이 반환하는것은 파일구조체의 포인터입니다.

  1. 이러한 fopen이 반환하는 파일구조체는 메모리 레이아웃에서 어디에 위치하고 있나요?

  2. fopen함수를 사용하면 생기는 파일 구조체를 파일스트림 이라고 이해하면 될까요?

그리고 fclose를 사용하는 이유는, 파일이 다 읽히지 않았을 때 버퍼에 남아있는 데이터가 오류를 일으키지 않게 하기 위함이라고 하셨습니다. 그 이유 외에 메모리 누수를 방지하기 위함도 있나요?

답변 1

답변을 작성해보세요.

0

강민철님의 프로필

강민철

2023.02.26

안녕하세요, 하나씩 답변드리자면

  1. 힙 영역에 할당됩니다.

  2. 그렇습니다.

  3. .맞습니다. 할당을 해제하지 않으면 계속 데이터가 남아있을텐데 이러한 문제가 메모리 누수라고 볼 수 있습니다.

관련한 비슷한 질문을 담은 링크를 참고삼아 첨부하여 드립니다.

https://stackoverflow.com/questions/24565191/file-pointer-in-c-dynamically-allocated

 

전민혁님의 프로필

전민혁

질문자

2023.02.26

친절한 답변 감사드립니다.