게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
안녕하세요 c언어에 malloc과 exit에 대해 궁금한점이 있습니다.
게시물ID : programmer_12891짧은주소 복사하기
작성자 : 2초뒤사살
추천 : 0
조회수 : 824회
댓글수 : 12개
등록시간 : 2015/08/21 19:55:12
옵션
  • 베스트금지
  • 본인삭제금지
개인적으로 학부과정을 되돌아보면서 프로그래밍중 생긴 의문이 있는대
malloc으로 동적메모리를 할당한다음 free로 그 할당한 곳을 풀어줘야지 메모리 누수가 안생긴다고 배웠습니다.
그런데 갑자기 든 의문은 동적메모리를 잡아준다음 코드 실행하다 exit를 만나는 경우에는 동적메모리가 남아있는지 궁금합니다.

대충 예제를 써보자면

int main()
{
int *a=(int*) malloc(sizeof(int)*20);
if(a == NULL)
{
pirntf("변수 a 메모리를 잡을수가 없어!\n");
exit(1);
}

int *b=(int*) malloc(sizeof(int)*10);
if(b == NULL)
{
pirntf("변수 b 메모리를 잡을수가 없어!\n");
exit(1);
}
free(a);
free(b);
return 0;
}

이런 코드일때 먼저 a를 잡고 b를 잡을때 메모리가 없어서 exit가 실행된다할때 잡혀있던 a는 free명령어를 만나보지도 못하고 종료가 될꺼라 예상이 됩니다.
그럼 종료가 되고도 a에대한 메모리가 잡혀있는 상태인가요?
제가 이에 개인적으로 찾아보았지만

첫번째 : http://kin.naver.com/qna/detail.nhn?d1id=1&dirId=1040101&docId=205187946&qb=ZXhpdCDtlaDri7ntm4Qg7KKF66OM&enc=utf8&section=kin&rank=1&search_sort=0&spq=0&pid=SOk8WwoRR1lssZumNK8sssssssG-163831&sid=K%2BcgwGoc%2B6L4x4hOEjJEyA%3D%3D
두번째 : http://tip.daum.net/question/81867405

이렇게 2개의 답변이 있고 2개의 답변이 상반되는 답변이 올라와 있내요.
어떤것이 정답인지 궁금합니다.
전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호