동적 메모리 할당 쉽게 이해하기!! (calloc, malloc, realoc, free) #1

코드멍멍이(Joonieboy)·2022년 6월 7일
2

동적 메모리 할당

목록 보기
1/1
post-thumbnail

🤮콜록콜록!! 몰록몰록!!

C언어나 C++언어를 공부하다 보면, 생소한 함수들을 많이 만나게 되는 것 같아...ㅋㅋㅋ 오늘 소개해드릴 calloc과 malloc이 대표적이라고 할 수 있지. 이 함수 말고도 realoc, free 함수들이 있는데 이에 대한 얘기들도 오늘 해보자구~ 나도 이 함수들에 대해서 처음 공부할 때, 상당히 햇갈려서 혼낫지... 하지만 이 글을 보는 사람들은 나보다 어려움을 쉽게 극복했으면 좋겠어! 자 그럼 calloc과 malloc의 차이점은 무엇이고, 굳이 왜 나누어 사용해야 할까?😒!

물론, 함수를 주어진대로 자기 입 맛대로 편하게 사용해도 되. 하지만, 이 함수를 사용하기 이 전에 어떠한 용도로 만들었는지 생각을 하는 것은 코딩에 상당한 도움이 되는거 알아? 그래서 Low-level 단계로 깊숙하게 파고 드는 경우도 많더라고...!! 특히, 초보자 분들은 하나 하나 따져가면서 공부하기 어렵지만, 하나씩 하나씩 하다보면 금방 어느새 나도 숙달된 코딩을 할 수 있게 되었구나 생각을 하게 될 거니까 같이 으쌰으쌰 하자!! 어렵지 않게 오늘도 쉽게 쉽게 알아볼까??🙌


📌동적 메모리 할당이라고 들어봤어? 혹시 모르겠다면, 꼭 읽고 넘어가!!

영어로는 "Dynamic Memory Allocation", 한글로 번역을 하면, "동적 메모리 할당". Dynamic 하다는 것은 동적이라는 말인데, 역동적이고 생동적인 것에도 다이나믹 하다는 말을 많이 사용하지. 특히 영화 같은 것만 보더라도 알 수있어!! 예를 들면, 꾀 오래된 영화이지만 "존 윅"이라고 들어봤어? 아니면 닐 암 리슨 형님이 나오는 "테이큰" 이런 액션 영화는 상당히 역동적인 장면들이 많이 나오지! 특히 총 싸움 하는 것만 봐바 얼마나 다이나믹해?? 이제 어떤 의미인지 알겠지??💥!

Memory는 우리가 흔하게 알고 있는 자료라고 알고 있으면 편하겠지? 자료라고 해서 또 어렵다고 생각을 하는 사람들도 있는데, 현실에서 우리가 다이어리를 작성을 하는 것도 다 자료라고 생각하면 되!!

이제 Allication... 일단 영어만 봐도 울렁증이 생기지? 어떻게 읽어야 할지도 모르겠을거야,,, 얼로케이션!! 배당하다는 의미로 많이 알고 있지. 이제 CS(Computer Programing)용어로 쓴다면, 할당한다는 말을 많이 사용하더라고~💡!

아무튼 이 단어들을 합치면 동적 메모리 할당이라고 생각하면 되, 그러면 메모리를 어떻게 동적으로 할당을 하는지에 대해서 설명해볼게~ 어려워도 일단, 한 번은 그냥 쓰윽~ SSG~ 읽어보고, 한 번 더 읽어보면 감이 올거니까 너무 걱정하지마!! 개념만 알고가보자🚗


🔸Calloc, malloc, realloc, free?!

👀 이 함수들은 뭐하는 애들이야??

어려울 수도 있으니까, 대략적으로 설명해줄게~ 컴온 컴온!! colloc, malloc 둘다 힙 영역에 메모리를 할당하는 애들이야, 근데 진짜 웃긴건 malloc은 더러운 애라는거~ 얼마나 귀찮으면, 청소하라고 그렇게 말해도 "몰러~ 몰러~" 하면서, 청소를 안하는거 있지?? ㅋㅋㅋ 그래서 메모리를 보면, 쓰레기들이 쌓여있어!!😥

반면에 colloc은 "콜록!! 콜록!!" 거리면서도 어찌나 깔끔떠는지 메모리들은 전부 0으로 가지런하게 초기화하는거 있지? 그래서 깔끔해 보이는 colloc이 보기에 너무 좋더라구~ 참고로 realoc은 할당된 메모리를 다시 재할당 할 때, 사용해!! 이에 대해서는 나중에 자세히 알아보도록 하자 한 번에 너무 많이하면 머리아퍼~ 천천히 가자구!!

free에 대해서는 아직 말하지 않았는데, free는 번역하면 자유로운 이라는 뜻이잖아~ "I am free now!!!" 즉, calloc, malloc 등 메모리를 할당한 이 후에 free를 사용하면, 메모리를 해제하게 되~ 근데 왜 메모리를 해제해야할까??? 그냥 만든 할당한 메모리를 가만히 두면 안되나??? 생각을 할 수도 있을 것 같네~ 근데 말이야!! 동적 메모리 할당을 하고, 해제를 하지 않으면, 메모리 공간이 계속 남아있어서 다른 메모리가 들어갈 자리를 쓸데없이 차지하고 있게 되는거지...😕

무슨 말인지 알겠지?? 쓸데없이 자리만 차지하고 있으니 양아치가 되는거여~ 그렇게 자리를 낭비하고 싶지 않으면, 메모리로써 일을 하든가~ 아니면 자리에서 나가든가~ 자유를 찾으라구!! 그래서 free를 사용하는거야!! 이제 이해가 되지?? 다음 시간에는 이 함수들을 사용하는 방법에 대해서 알려줄거야~ 그러면서 차이점에 대해서 더욱 자세하게 알아보는 시간을 가져보자😊

읽어줘서 고맙구, 다음에 또 봐~💕

profile
#유니티개발자 #게임 #인플루언서 #ENFJ

0개의 댓글