▣ 이번장에서는 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를 크기에 메모리에 주소가 들어있는 것도 확인할 수 있습니다.
▣ 이제 원하는 크기로 다른 자료형 크기만큼 메모리를 할당해보세요.
'[ 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 |
댓글