본문 바로가기
전공공부/C언어

[C] 11. C언어 동적할당(동적메모리)

by 아임그류튜 2024. 2. 28.
반응형

 

동적할당은 말 그대로 프로그램 실행 중 메모리를 할당하는 것을 말합니다.

즉, 원하는 만큼 배열을 선언하거나 특정변수를 필요 시에만 선언할 수 있습니다.

효율적인 메모리 관리가 필요한 경우 자주 사용하게 됩니다.

 

동적할당은 2가지 함수가 필요합니다.

할당하는 함수, 반납(해제)하는 함수입니다.

malloc(): 지정된 바이트 수만큼의 메모리를 할당하고 할당된 메모리의 시작 주소를 반환합니다.
free(): 할당된 메모리를 해제하는 함수로, 할당된 메모리를 해제하여 다시 사용할 수 있도록 합니다.

 

아래 예시에는 작성하지 않았는데 malloc함수를 사용하고 보통 반환된 값이 NULL인지 확인합니다.

그 이유는 NULL인 경우 메모리 할당에 실패한 경우라 예외처리 등을 시행해야 합니다.


동적 메모리 할당은 배열이나 구조체와 같은 데이터 구조를 생성하거나 큰 크기의 데이터를 다룰 때 유용합니다. 

단, 사용한 메모리는 반드시 해제해야 하며, 그렇지 않으면 메모리 누수가 발생합니다.

 

동적할당 프로세스: 할당 → 사용 → 반납

 

아래 변수에 따라 저장되는 메모리 영역이 달라지는 것도 한 번 확인하면 프로그래밍에 도움이 많이 될 것입니다ㅎㅎ

프로그래밍을 하다보면 

반응형