malloc 하고 free 한 공간에 대해서 좀 궁금한게 잇네요.
글쓴이: newlife958 / 작성시간: 월, 2008/12/22 - 5:10오후
malloc 으로 공간을 할당 받고
그할당된 공간을 free 시킵니다.
그런데 이것이 무한히 반복된다면
힙이 다차게된다면 처음에 malloc 한공간을 free 시킨 메모리공간을 다시 할당하게되나요??
즉 free 한 메모리 주소를 malloc 하다보면 다시 재사용 하는지 궁금하네요
프로그래머가 그주소를 직접 대입이 아닌 자동할당할시에요.
어디선가 malloc 했다가 free한공간은 malloc 으로 다시 재사용 안한다는 말을 얼핏 들은거 같아서요.
Forums:
재활용 합니다.
당연히 free한 공간은 malloc 에서 다시 할당해 줍니다.
malloc 했다 free 한 공간을 재활용하지 않으면 엄청난 메모리낭비와 함께 금방 메모리 부족이 일어나게 될 것입니다. -ㅅ-
(electric fence 와 같은 일부 memory debugging tool 에서는 말씀하신 것처럼 malloc 한 영역을 재활용하지 않는 경우가 있습니다만. 아주 예외적인 경우입니다.)
malloc algorithm에 대해 더욱 자세한 것을 알고 싶으시면, doug lea 의 malloc 을 분석해 보세요. http://gee.cs.oswego.edu/pub/misc/malloc.c
댓글 달기