2017-11-17 33 views
0

C에서 garbage memory를 만들지 않기 위해 malloc 후에 사용되는 'free'에 대해 배웠습니다. 무엇이 재활용입니까? 나는 그것을 찾았지만 어떤 코드도 찾을 수 없었다. 내가 가진 전부는 자유에 대한 설명이다. 그들은 똑같은가?동적 메모리를 재활용한다는 것은 무슨 의미입니까?

데이터 구조 (일반 선형 목록)에 대한 저서에서 "휴지통은 노드의 공간을 동적 메모리로 반환하는 의사 코드 명령입니다.

고마워요. 라이센스에 문제가있는 경우

this is the diagram

나는 사진을 삭제합니다.

+1

"의사 코드 명령" "재활용"은 무료로 사용 된 효과를 요약하기 위해 책에서 사용 된 가상 코드입니다. "재활용"에 대한 약간의 맥락을 인용 할 수 있습니까? – Yunnosch

+3

"recycle"에 대한 한 가지 해석은'free' 호출 이후에'malloc'을 호출 할 때 같은 메모리가 다시 나타날 수 있다는 것입니다. –

+0

@Yunnosch 키보드가 없어서 다이어그램이 추가되었습니다. 한번 봐주세요 –

답변

-1

Google 도서에서 언급 한 문구를 살펴 보았습니다. 그들이 의미했던 것은 그들이 이미 함수 또는 의사 코드 인 void recycle (node ​​* ploc)을 정의했다고 가정한다는 것입니다. ploc은 더 이상 링크 된 목록에서 필요없는 노드입니다. 그리고 예, 그것은 ploc에서 무료 또는 삭제를하는 것과 유사합니다. 현재 함수에서 직접 수행하거나 재활용과 같은 별도의 함수로 수행 할 수 있습니다.

1

재활용이란 나중에 사용하기 위해 사용되지 않은 메모리를 비우는 것을 의미합니다.

free없이 계속 malloc을 계속 사용하는 경우, 약간의 시간이 지나면 프로그램에 GBs의 RAM이 사용될 수 있습니다. 대부분 RAM이 사용되지 않을 수 있습니다. 직접적인 결과는 운영 체제가 프로그램의 추가 요청을 거부하거나 전체 시스템에 부담을 줄 수도 있습니다.

재활용은 의사 -code가 아닙니다. 그것은 실제 OS에 "이 메모리 블록은 더 이상 사용되지 않습니다 ."어떤 프로그램에도 할당 할 수 있습니다. 그런 다음 시스템은이 특정 메모리 블록을 낭비하지 않고 다시 관리 할 수 ​​있습니다. 실제 코드는 free()이고 리사이클은 컴퓨터 과학에 사용되는 용어 일뿐입니다.

효율면에서 항상 사용하지 않는 메모리는 free입니다.