해결된 질문
작성
·
224
1
안녕하세요. 강의 내용인 교수님의 코드를 요약해서 적어보았습니다.
여기서 calloc함수에 대해 free함수로 메모리를 해제 하지않았는데, 이렇게 된다면 calloc함수에 대한 메모리가 남아있게 되나요? 아니면 realloc함수가 calloc함수에 대한 메모리를 알아서 해제 시키나요? (프로그램이 종료되면 알아서 해제되겠지만, 프로그램이 종료되지 않았다는 가정하입니다.)
답변 1
4
알아서 해제 시킵니다.
The realloc
function deallocates the old object pointed to by ptr
and returns a pointer to a new object that has the size specified by size
.
첫번째 매개변수로 넘겨받았던 기존 객체는 해제시키고 새로운 객체를 할당받아 그 주소를 리턴한다고 합니다.
1️⃣새 객체 생성 2️⃣ 기존 객체의 내용들 새 객체에 복사해 옮김 3️⃣ 기존 객체 해제 4️⃣ 주소 복사
위 과정을 realloc 하나로 한번에 다 할 수 있다고 생각하시면 됩니다.