개인적으로 학부과정을 되돌아보면서 프로그래밍중 생긴 의문이 있는대 <div>malloc으로 동적메모리를 할당한다음 free로 그 할당한 곳을 풀어줘야지 메모리 누수가 안생긴다고 배웠습니다.</div> <div>그런데 갑자기 든 의문은 동적메모리를 잡아준다음 코드 실행하다 exit를 만나는 경우에는 동적메모리가 남아있는지 궁금합니다.</div> <div><br></div> <div>대충 예제를 써보자면</div> <div><br></div> <div>int main()</div> <div>{</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>int *a=(int*) malloc(sizeof(int)*20);</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>if(a == 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>pirntf("변수 a 메모리를 잡을수가 없어!\n");</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>exit(1);</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>int *b=<span style="font-size:9pt;line-height:1.5;">(int*) malloc(sizeof(int)*10);</span></div> <div><span style="font-size:9pt;line-height:1.5;"><span class="Apple-tab-span" style="white-space:pre;"> </span>if(b </span><span style="font-size:9pt;line-height:1.5;">== NULL)</span></div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>{</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>pirntf("변수 b 메모리를 잡을수가 없어!\n");</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>exit(1);</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>}</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>free(a);</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>free(b);</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>return 0;<br>}</div> <div><br></div> <div>이런 코드일때 먼저 a를 잡고 b를 잡을때 메모리가 없어서 exit가 실행된다할때 잡혀있던 a는 free명령어를 만나보지도 못하고 종료가 될꺼라 예상이 됩니다.</div> <div>그럼 종료가 되고도 a에대한 메모리가 잡혀있는 상태인가요?</div> <div>제가 이에 개인적으로 찾아보았지만</div> <div><br></div> <div>첫번째 : <a target="_blank" href="http://kin.naver.com/qna/detail.nhn?d1id=1&dirId=1040101&docId=205187946&qb=ZXhpdCDtlaDri7ntm4Qg7KKF66OM&enc=utf8§ion=kin&rank=1&search_sort=0&spq=0&pid=SOk8WwoRR1lssZumNK8sssssssG-163831&sid=K%2BcgwGoc%2B6L4x4hOEjJEyA%3D%3D">http://kin.naver.com/qna/detail.nhn?d1id=1&dirId=1040101&docId=205187946&qb=ZXhpdCDtlaDri7ntm4Qg7KKF66OM&enc=utf8§ion=kin&rank=1&search_sort=0&spq=0&pid=SOk8WwoRR1lssZumNK8sssssssG-163831&sid=K%2BcgwGoc%2B6L4x4hOEjJEyA%3D%3D</a></div> <div>두번째 : <a target="_blank" href="http://tip.daum.net/question/81867405">http://tip.daum.net/question/81867405</a></div> <div><br></div> <div>이렇게 2개의 답변이 있고 2개의 답변이 상반되는 답변이 올라와 있내요.</div> <div>어떤것이 정답인지 궁금합니다.</div>
댓글 분란 또는 분쟁 때문에 전체 댓글이 블라인드 처리되었습니다.