본문 바로가기
[ CODING STUDY ]/》C++ 공부

C++ 9장 [메모리 할당]

by MRG 2022. 10. 26.
728x90
반응형

▣ 안녕하세요. 

이번장에서는 메모리 할당에 대해 공부해보겠습니다.

메모리 할당은 프로그래밍에서 실행하는 동안 사용할 메모리 공간을 할당(배정, 몫을 나누는 것) 의미합니다. 

 

▣ 그럼 왜 메모리 할당이 필요할까요? 

우리가 프로그램을 만들 때 "내가 몇 기가짜리를 만들어야지"라고 계획을 하지 않습니다.

그렇게 계획을 하고 만들더라도 프로그램에 텍스트 입력 수, 이미지나 도형 크기 등등 메모리를 어느 정도 사용할지에 대한 부분을 모두 다 생각하며 제작하는 건 불가능합니다.

그렇기 때문에 프로그램을 만들고 실행 중 내가 필요한 메모리를 할당받고 필요 없을 때 반환하는 메모리 할당을 진행해야 합니다. 

그럼 이제 코드를 작성하며 공부하겠습니다.

 

 

▣ int* p  = (int*) malloc(sizeof(int)) 이 코드는 C언어에서 메모리 할당을 하는 코드입니다.

malloc() 함수에 매개변수 안에 메모리의 크기를 지정해주면 됩니다.

sizeof() 함수를 통해서 크기를 지정했습니다.
*p = 7; 코드로 할당한 메모리에 값을 지정하고
free(p); 코드로 메모리 반환을 반환했습니다.

메모리를 할당받고 다시 반환하지 않으면 프로그램이 끝나기 전까지 계속 사용 중이기 때문에 다시 사용할 수 없습니다.

그걸 메모리누수라고 합니다. 그래서 free() 함수로 반환해야 합니다.

▣ int* p2 = new int; 코드는 C++에서 메모리 할당을 할당하는 코드입니다.

new 키워드를 붙이고 메모리의 크기를 지정해주시면 메모리 할당이 됩니다.
delete(p2); 코드는 C++ 메모리 반환하는 코드입니다. 

코드를 작성하고

8번째 줄에 커서를 두고 F9키를 누르면 커서를 위치한 줄에 브레이크 포인트가 지정이 됩니다.

브레이크 포인트는 그 지점까지 디버그를 하고 멈춘다라고 생각하시면 됩니다.

 

▣ 그리고  F5 키를 누르고 디버그 한 상태에서 

메뉴에서 창에서 메모리를 선택하면 이렇게 메모리 영역이 나옵니다. 

그럼 주소: 이 부분에 p라고 검색을 하면  p에 07이 들어있는 걸 확인할 수 있습니다.

 

▣ 이번에는 new 키워드를 사용한 메모리를 확인해 보겠습니다.

int* p2 = new int(8)이 코드처럼 C++에서 메모리 할당하는 코드에서는

이렇게 초기화 값을 넣어서 사용할 수도 있습니다.

메모리를 확인해보면 08이 들어가 있는 걸 확인할 수 있습니다.

 

 

728x90
반응형

'[ CODING STUDY ] > 》C++ 공부' 카테고리의 다른 글

C++ 11장 [string]  (0) 2022.10.28
C++ 10장 [this 포인터]  (0) 2022.10.27
C++ 8장 [포인터 객체]  (0) 2022.10.20
C++ 7장 [인라인 함수]  (0) 2022.10.13
C++ 6장 [클래스4]  (0) 2022.10.12

댓글