본문 바로가기
[ C++ ]/- C++ 실습연습

C++ [메모리 할당, new, delete]

by MRG 2021. 5. 23.
728x90
반응형
728x90

▣ 이번장에서는 c++에서 메모리 할당하는 코드를 공부해보겠습니다.

c언어에서 malloc()함수와 free() 함수를 모르시는 분은 c언어 코드 예제를 참고해주세요.

 

▣ 우리가 힙영역에서 메모리를 직접 할당하려면 우선 int *p 포인터를 사용해야 합니다.

포인터는 주소를 저장하는 변수입니다. 

그리고 내가 원하는 크기만큼 메모리를 할당하려면

c언어에서는 int *p = malloc(크기)로 할당해서 사용했습니다.

하지만 c++에서는 더 직관적으로 간결하게 new 키워드를 사용하여 할당합니다.

int *p = new int; 이렇게 하게 되면 int 크기로 4byte를 할당할 수 있습니다. 

 

▣ 그렇게 하고 cout으로 sizeof() 함수를 이용하여 메모리에 크기와 주소 그리고 값을 출력하면 우리가 할당했던

크기만큼 메모리 크기가 출력되는 걸 확인할 수 있습니다.

그리고 c언어에서는 free() 함수로 메모리 해제하고 돌려주었다면

c++에서는 delete p; 키워드로 메모리를 해제하고 돌려줍니다. 

메모리를 돌려주지 않게 되면 메모리 누수가 일어나기 때문에 꼭 메모리를 해제해주세요.

 

▣ 이번에는 출력 부분까지 중담점을 찍어서 디버그를 한 후에 직접 메모리를 확인해 보겠습니다.

비주얼 스튜디오 기준으로 중단점은 F9 키이고, 디버그는 F5키입니다. 

메모리에 p를 검색하면 0X00AC480에 *p = 1 값을 넣었던 1에 값이 들어있는 걸 확인할 수 있고,

p변수 값에 int 4byte를 크기에 메모리에 주소가 들어있는 것도 확인할 수 있습니다.

 

▣ 이제 원하는 크기로 다른 자료형 크기만큼  메모리를 할당해보세요.

728x90
반응형

'[ C++ ] > - C++ 실습연습' 카테고리의 다른 글

C++ [for문, 포인터, 레퍼런스변수]  (0) 2021.07.09
C++ [함수 오버로딩]  (0) 2021.07.02
C++ [구조체 함수 사용]  (0) 2021.06.08
C++ [문자열, string, 문자열 함수]  (0) 2021.05.31
C++ [출력, 입력]  (0) 2021.05.21

댓글