프로그램이 실행도중에 필요시에 동적으로 사용이 가능해야할때 사용
int* ptr = (int*)malloc(100); // 힙 영역에 100byte 할당
malloc(); 반환타입이 void //사용자가 사용하고자 하는 반환타입으로 그때그때 알맞게 사용하기 위함
동적할당 특징
1. 런타임 중에 대응 가능
2. 사용자가 직접 관리해야함(해제)
#include <iostream>
#include <stdio.h>
//메모리 영역
// 1. 스택(stack)
// 2. 힙(heap)
// 3. 데이터(DATA)
// 4. ROM(읽기 전용)
int main(void)
{
int iPut = 0;
scanf_s("%d ", &iPut);
int* pInt = nullptr;
//동적 할당
if (100 == iPut)
{
pInt = (int*)malloc(100);
}
//프로그램 종료 전에 heap메모리 할당 해제
if (pInt != nullptr)
{
free(pInt);
}
//할당 해제 해주지 않으면 메모리 누수발생(메모리가 사용된다고 체크되면서 메모리가 쌓여감)
return 0;
}
'c & c++ > 메모리' 카테고리의 다른 글
동적할당 calloc 함수 이용 (0) | 2022.07.27 |
---|---|
동적할당 malloc함수 이용 (0) | 2022.07.27 |
댓글