인프런 커뮤니티 질문&답변

김성규님의 프로필 이미지
김성규

작성한 질문수

독하게 시작하는 C 프로그래밍

동적 할당된 메모리 구조와 realloc()

동적 배열을 만들 때 realloc을 사용하나요 보통?

해결된 질문

작성

·

80

0

원래는 malloc하고 memcpy를 모를때는 반복문으로 복사하고, 이후 free하고 다시 새로 malloc한 주소값을 대입하였습니다.

image.png

이번 강의에서 realloc을 배우고 이렇게 바꿀 수 있었습니다.

image.png

그러면 실제로 동적 배열 만들때는 주로 realloc을 사용할 것 같은데, 강사님께서 realloc을 쓸일이 거의 없다고 하셨습니다.

 

설명해주신 미리 할당을 받아두고 memory pooling을 구현하기 때문인가요?

아니면 대부분 동적이 아닌 예상할 수 있는 수치의 고정된 크기로 잡을 수 있기 때문에 realloc할 일 조차 없기 때문인가요?

 

그도 아니면 c에도 동적 배열을 사용하기 위한 라이브러리가 있어서 인가요?

 

항상 양질의 강의 제공에 감사드립니다.

답변 1

1

널널한 개발자님의 프로필 이미지
널널한 개발자
지식공유자

우선 보여주신 모드 조작은 어떤 의미로 만든 코드인지 알 수 없으나 일반적이지 않은 코딩 형태라 할 수 있겠습니다. 그리고 '동적 배열'이라는 표현은 C언어서 보이는 일반적 표현이 아닙니다. C언어에서는 통상 '동적 할당 메모리'라고 합니다. 배열은 메모리를 접근하기 위한 수단에 해당하는 문법일 뿐 동적 할당된 것이든 정적 메모리든 상관하지 않습니다.

realloc()을 사용할 경우가 흔치 않은 이유는 생각하시는 것처럼 대량의 메모리가 필요할 때 직접 관리할 목적으로 미리 충분한 양을 받은 후 사용하는 경우가 성능상 유리하기 때문입니다.

Java를 공부하신 후 C언어를 배우시는 것으로 추측됩니다. C언어에는 '동적 배열'이라는 용어가 없다고 생각하시는 편이 이해해 도움이 될 것 같습니다. 참고하시기 바랍니다. 😄

김성규님의 프로필 이미지
김성규
질문자

감사합니다!!

김성규님의 프로필 이미지
김성규

작성한 질문수

질문하기