예를 들어 회원들을 관리하는 프로그램을 만든다고 생각해 보자.
대충 회원 수가 100명 이하일 것 같다.
그러면 칸이 100개인 배열을 만들어서 회원 1번, 회원 2번, ... 100번 회원까지 정보를 입력할 수 있을 것이다.
앗, 그런데 회원수가 100명이 넘어갔다?
그러면 회원 정보 입력하는 공간이 부족해서 오류가 날 것이다.
'동적할당'이란 이렇게 미리 공간을 정해두는 게 아니고 그때그때 필요하면 공간을 만드는 메모리 할당 방식이다.
회원이 한 명 생길 때마다 회원 정보 칸 하나를 확보시키는 것이다.
malloc의 경우, 자료형이 정해져 있지 않은 void*(void 포인터)이다. 고로 크기를 정해줄 때 형변환을 실시한다.
왜 malloc이 형이 정해져있지 않은 void*인가? 컴퓨터가 식당 주인이고 프로그래머가 손님이라고 생각해 보자.
손님이 '식기 주세요~'라고 하면 식당 주인은 그 식기가 컵인지, 밥그릇인지, 압젚시인지, 국그릇인지 모른다.
아마 가장 무난한 앞접시를 주겠지. 고로 컴퓨터는 식당 주인의 입장처럼 void*라는 정해지지 않는 자료형의 공간을 프로그래머에 내어주고, 프로그래머는 원하는 자료형으로 바꾸려면 직접 형변환(국그릇으로 주세요)을 해야하는 것이다.
'프로그래밍' 카테고리의 다른 글
| 개인 작업 -2- (0) | 2025.03.29 |
|---|---|
| 스팀 얼리액세스(앞서 해보기) 출시심사 중 겪은 반려(미승인) 사례 (5) | 2025.01.17 |
| [SVN] Azure SVN 서버 오류 (Unable to connect) 해결방법 (3) | 2024.11.01 |
| 오브젝트 풀링 (0) | 2023.01.29 |