Today
Total
Recent Posts
Recent Comments
Archives
05-19 03:21
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
반응형
관리 메뉴

UD_park's IT story

[C++] 동적할당에 대한 개념과 사용법 본문

IT - Language/C++

[C++] 동적할당에 대한 개념과 사용법

kingllzn 2018. 6. 12. 11:22
반응형
SMALL

(학습 서적 이것이 C++이다에서

내용 발췌하였습니다)

 

[보기용 예제 소스 코드에서 오류 발생시에

댓글이나 방명록에 글을 남겨 주시면 수정/보완하겠습니다]

 

 

이번에는

동적할당에 대한 개념과 사용법에

관헤서 포스팅하도록 하겠습니다

 

첫 번째로 동적할당의 개념입니다

동적할당은 기존의 프로그래밍에서

발생했던 많은 변수들을

무분별하고 비효율적이였던

메모리 저장 방식을

효율적으로 저장해 주는 방식입니다

 

int Number = 10;

이라는 것으로 예를 들겠습니다

int라는 정수형과

Number라는 이름을 가진

이 아이는 기본적으로

데이터를 저장하기 위해

메모리 할당

즉, 밥그릇을 가지게 됩니다

(운영체제가 32bit 일때 4byte

      64bit 일때 8byte)

 

그러나 10이라는 값은

너무 작은 양의 밥이기에

Number라는 밥그릇에 10은

절반에도 한참 못미치는 양입니다

 

그러므로 Number라는 밥그릇엔

빈 공간이 넘칠 수 밖에 없습니다

한마디로 비효율적인

밥그릇이라는 것입니다

 

그런데 동적할당이란 아이는

담는 밥의 양만큼 그릇의 크기가

필요한 만큼 늘었다가

줄어들었다가를 조절할 수 있다고

생각하시면 되겠습니다

 

 

동적할당의 사용 방법의 틀은

 

[기본형]

 형식 *변수이름 = new 형식;

delete 변수이름;             

 

[배열형]

형식 *변수이름 = new 형식[요소개수];

delete[] 변수이름;                         

이러한 형식으로 사용됩니다

 

코딩으로 보여드리겠습니다

 

첫 번째로 기본형의

동적할당 입니다

 

11번 줄에 *pNumber와

16번 줄에 *pNumber2 두 개의

기본형 동적할당을

생성해보았습니다

 

주석문에서 보시다시피

초기값을 동적할당과 같이 선언하거나

그 후에 설정하시는 방법이 있습니다

 

그리고 명심해야 할 점은 꼭

밥그릇을 설거지 하는 역할인

delete 변수이름;    을

해주셔야합니다

 

delete는 쉽게 이야기해서

크기가 자유자재로 변하는

밥그릇을 다 쓰고난 후에

설거지하여 정리하는 역할을

해줍니다

 

 

이번에는 배열형 동적할당입니다

기본형 동적할당과

배열형 동적할당의 큰 차이는

없습니다

 

배열인것을 잘 나타나도록

임의로 반복문인 for문을

사용한것 이외엔 거의 동일합니다

 

 new 는 생성

delete 는 소멸

 

이 두가지는 동적할당의

한 묶음 덩어리이기에

꼭 기억해 주시기 바랍니다

 

혹시 다른것에 대해 궁금하신게

있으시다면

댓글에 달아주세요

 

아는것이면 친절하게 쉽게

모르는것이면 또 제가 알아내서

친절하게 쉽게 포스팅해서

설명해드리겠습니다

 

 

이상 동적할당에 대한

기본 개념과 사용법의

포스팅을 마치도록 하겠습니다

 

반응형
LIST
Comments