본문 바로가기

C

C <17>. 동적할당


오늘의 주제

1. 동적할당 malloc 


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

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

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

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

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

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

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

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

스따뚜~~~~~~~~~~~~

그 전에 추천 한 방 어떠세요?ㅎ 저에게 큰 힘이 됩니다 +_+ㅋ



# 동적할당 malloc

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

사용방법은

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

이런식으로 사용합니다.

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

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

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

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

그럼 결과를 한 번 볼까요?



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

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

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

그럼 전 이만...!


by yagom

twitter : @yagomsoft

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

RSS Feed 받기   


↓↓↓저 열심히 썼는데 추천 한방 꾹 눌러주고 가시는 건 어떨까요? 로그인이 필요 없습니다. ^~^ 고맙습니다~ ↓↓↓ 



'C' 카테고리의 다른 글

C <20>. enum  (4) 2012.05.24
C <18>. 연결리스트 (Linked list) - 자료구조(1)  (0) 2012.05.21
C <16>. 구조체  (2) 2012.05.16
C <15>. 전처리자  (0) 2012.05.14
C <14>. 배열  (4) 2012.05.11