C <17>. 동적할당

오늘의 주제

  • 동적할당 malloc

열 일곱 번째 시간입니다.^^

지난 번에는 구조체에 대하여 알아보았습니다.
구조체라는 녀석도 꽤나 매력적인 녀석입니다.
예를 들어 한 사람의 정보를 구조체 하나에 담을 수도 있구요(이름, 나이, 성별, 직업 등등)...
복합적인 자료를 관리하기 참 편리할 것 같죠?ㅎ

그리고 저번에 배웠던 배력적인 배열에 대해서도 잠깐 생각해 보도록 해요.
2012/05/11 - [C] - C <14>. 배열
ㅂㅐ열에서 우리는 하나의 의문을 가지고 끝을 맺었었죠.

배열의 크기는 조절 할 수 없는가 였는데요.
네, 조절할 수 없으므로, 필요에 따라서 우리가 원하는 크기만큼 할당하는 것이 좋겠죠?

그런데 우리가 개발을 하면서 이 배열은 딱 이 사이즈면 돼. 라고 말할 수 있는 경우는 많지 않습니다.
때에 따라 너무 다를 수 있으니까요.

그래서 배열을 때에 따라 상황에 맞게 할당 할 수 있는 기능이 있습니다.

물론 배열에 국한된 것은 아니지만 주로 배열에서 사용하게 되므로 배열로 예를 들어서 설명해 보겠습니다.

정말 중요한 것이니 몇 번을 보고, 다른 싸이트를 검색하고, 직접 계속 둘러보면서 꼭 몸으로 익히도록 하세요! ^^

스따뚜!!!

동적할당 malloc

malloc이라는 함수가 하는 역할은 우리가 원하는 크기의 자료를 메모리에 할당하고 그 주소값을 다시 되돌려 주는 역할을 합니다.
즉, 입력값은 원하는 크기, 리턴값은 메모리의 주소 입니다.

사용방법은

포인터 변수 = (포인터의 자료형 종류)malloc(원하는 자료크기);

이런식으로 사용합니다.

잘 감이 안오시죠?ㅎ 예제를 봐도 감이 올랑말랑 할겁니다 ㅎ

그래도 한 번 예제 소스 보시죠~ 자세한 설명은 역시나 주석으로 ^^

 
지난 번 배열의 비밀에서 배열의 이름은 배열 첫 머리 원소의 주소가 된다고 말씀 드렸죠?ㅎ
그것을 여기서 멋들어지게 써먹는 겁니다~
배열을 메모리에 할당을 해주고 그 첫머리의 주소값을 포인터 변수에 넣어주는 것이죠 ㅎ
그러면 배열과 똑같은 역할을 하게 되는 것이죠~

참! 그리고 malloc을 한 후에 사용을 끝냈으면 꼭 free를 호출해서 메모리에 할당하였던 녀석을 풀어주어야 합니다~
안그러면 메모리에 좀비처럼 남겨져서 메모리가 필요할 때 사용을 할 수가 없어요^^&

그럼 결과를 한 번 볼까요?

자, 숫자는 랜덤으로 들어갔기 때문에 숫자는 다를 수가 있어요 ㅎ

어떤가요? malloc이라는 녀석 매력적인가요?ㅎ

부족하거나 더 궁금한 점이 있다면 주저말고 댓글 주세요~^^

그럼 전 이만...!

by yagom


p.s 제 포스팅을 RSS 피드로 받아보실 수 있습니다.
RSS Feed 받기

댓글 남기기

Close