본문 바로가기
c언어

c언어 동적 할당 메모리에 대하여 알아보기

by 개발자 L 2023. 2. 22.
반응형

c언어 동적 할당 메모리에 대하여 알아보기

네 안녕하세요, 이번 포스팅에서는 동적 할당 메모리에 대하여 알아보도록 하겠습니다.

동적 할당 메모리는 실전 프로그래밍을 할 때 c언어 베이스의 모듈이나 웹 프레임워크 등에서

정말 자주 쓰입니다.

그렇기 때문에 매우 중요한 요소이기 때문에 잘 숙지하셔야 합니다.

그럼 지금부터 시작해 보도록 하겠습니다.

 

1. 동적 할당 메모리란?

메모리 할당 방식에는 크게 두 가지가 있습니다.

  • 정적 메모리 할당(static memory allocation)
  • 동적 메모리 할당(dynamic memory allocation)

이 중에 우리는 미리 메모리 할당 공간을 정해서 저장을 하는 정적 할당 방식을 썼습니다.

이런 식으로 말이죠.

int score[100];

이렇게 하면 100개의 정수를 저장할 수 있지만,

그 와 동시에 100개의 정수만 저장할 수 있게 됩니다.

그럼 동적 할당의 경우는 어떨까요?

동적 할당의 경우는 실행 도중에 메모리를 할당 받는데,

필요한 만큼의 메모리를 할당 받아 사용을 한 후에,

다시 그걸 반납하는 형태로 쓰입니다.

사용 방법은 이렇습니다.

score = (int *) malloc(100 * sizeof(int));

이런 식으로 정수형 변수의 크기만큼 동적으로 필요시에 할당을 받을 수 있습니다.

위 코드는 100개의 정수를 필요할 때마다 받을 수 있게 해 둔 것입니다.

반응형

 

2. 동적 메모리의 사용 절차

동적 메모리의 할당 절차는 아래와 같습니다.

  • 얼마나 할당을 받을 것인지 결정한 후에 라이브러리 함수를 호출해 운영체제에게 메모리 요청을 한다.
  • 할당이 된 메모리를 사용한다.
  • 메모리를 다시 반납한다.

이러한 방식으로 진행이 되며,

마치 도서관 등에서 책을 빌리는 것과 유사합니다.

그리고 메모리는 무조건 반납이 되는데,

그 이유는 그러지 않으면 다른 프로그램이 동적 메모리를 사용할 수 없기 때문입니다.

 

여기까지 동적 할당 메모리에 대하여 알아보았는데요,

다음 포스팅에서는 동적 메모리의 할당, 사용, 반납 방법을 알아보도록 하겠습니다.

긴 글 읽어주신 독자분들께 진심으로 감사드립니다~

반응형

댓글