응애맘마조
동적할당(Dynamic Allocation) 본문
앞의 게시글의 지역변수, 전역변수는 메모리에 할당을 하고 함수를 빠져나갔을 때나 프로그램이 종료되었을 때 메모리가 해제되었습니다. 이번에 설명할 동적 할당은 다릅니다.
동적할당은 크기가 어느 정도인지 알기 어려울 때나 클 때 사용하고 (이미지 파일 등에 사용합니다.) 힙 영역에 저장이 됩니다.
사용 예시는 다음과 같습니다.
포인터로 변수 이름을 선언해 주고 new를 사용하여 할당해 줍니다.
동적 할당은 프로그래머가 필요할 때 메모리를 할당하고 해제할 수 있도록 해줍니다. 하지만 동적 할당은 프로그래머가 명시적으로 해제를 해줘야 하기 때문에 이렇게만 코드를 작성한다면 프로그램을 종료해도 메모리는 계속 할당이 되어 불필요한 메모리를 사용하게 됩니다. 해제하는 방법은 다음과 같습니다.
동적할당 된 변수 밑에 delete를 사용하여 변수 및 배열을 해제할 수 있습니다.
(delete라고 해서 해당 변수의 메모리를 삭제하는 것이 아니고 운영 체제로 반환을 합니다.)
다음은 string을 사용한 예제입니다.
string으로 문자열 txt를 받아서 Hello World! 를 출력하고 delete를 사용해서 메모리를 해제해 줍니다.
다음은 간단한 계산을 사용한 예제입니다.
int형 변수 num1, num2를 할당받고 계산한 후 프로그램 종료 시 해제됩니다.
읽어주셔서 감사합니다.
'공부 > 개인' 카테고리의 다른 글
static (0) | 2023.03.28 |
---|---|
지역변수와 동적할당을 각각 스택과 힙에 할당하는 이유 (0) | 2023.03.27 |
메모리 구조 (0) | 2023.03.23 |
전역변수(Global Variable) (0) | 2023.03.07 |
지역변수(Local Variable) (0) | 2023.03.06 |
Comments