c언어 free 함수 : 쌍이 맞아야 된다.
동적 할당은 무엇인가요? 예를 들어, 이런 코드가 있다고 해 봅시다. malloc 함수가 호출되기 전에 메모리 상태는 아래와 같습니다. 처음에 Heap 영역에는 아무 것도 할당되지 않았습니다. 그런데 malloc, 메모리 할당 함수가 호출이 되면, 힙 영역에 무언가를 위한 공간이 만들어 집니다. 그러면 이런 상태가 됩니다. 메모리에 할당된 주솟값을 p가 받고 있습니다. 그러면 stack에 있는 변수 p가 Heap 공간에 할당된 space를 가리킵니다. 이것이, 자동으로 해제가 되면 좋겠습니다만. 그렇지 않아요. 명시적으로 해제를 시켜주지 않으면, (동적으로 할당된 공간은) 프로그램이 끝날 때 까지 메모리에서 사라지지 않습니다. free 함수의 원형은 다음과 같습니다. 그냥 해제할 공간의 주소만 넘겨주면 ..
코딩/C
2019. 12. 3. 23:41
최근댓글