C++언어 공부 0002
메모리의 동적 할당
동적 메모리
- 프로그램 실행 중에 동적으로 메모리를 할당받는 것이다.
- 필요한 만큼 할당 받으므로, 효율적으로 사용할 수 있다.
- 사용이 끝나면 시스템에 메모리 공간을 반납해야 한다.
new
와delete
키워드를 사용한다.- 사용 방법
int *pi = new int; // 하나의 int형 공간 할당
int *pia = new int[100]; // 크기가 100인 int형 동적배열 할당
double *pd = new double; // 하나의 double형 공간 할당
double *pda = new double[100]; // 크기가 100인 double형 동적배열 할당
delete pi; // 동적 할당한 int형 공간 반납
delete[] pia; // 동적 할당한 배열 반납
delete pd; // 동적 할당한 double형 공간 반납
delete[] pda; // 동적 할당한 배열 반납
C에서의 동적 메모리
- C에서도 메모리의 동적 할당이 가능한데, 방법이 살짝 다르다.
new
와delete
키워드 대신,malloc
과free
키워드를 사용한다.- 사용 방법
int *pi = (int *)malloc(sizeof(int)); // 하나의 int형 공간 할당
int *pia = (int *)malloc(sizeof(int) * 100); // 크기가 100인 int형 동적배열 할당
double *pd = (double *)malloc(sizeof(double)); // 하나의 double형 공간 할당
double *pda = (double *)malloc(sizeof(double) * 100); // 크기가 100인 int형 동적배열 할당
free(pi); // 동적 할당한 int형 공간 반납
free(pia); // 동적 할당한 배열 반납
free(pd); // 동적 할당한 double형 공간 반납
free(pda); // 동적 할당한 배열 반납
C++ 동적 메모리 예제
#include <iostream>
using namespace std;
int main()
{
int *pi; // 동적 메모리를 가리키는 포인터
pi = new int[100]; // 동적 메모리 할당
for(int i=0; i < 100; i++)
*(pi+i) = 0; // 동적 메모리 사용
delete[] pi; // 동적 메모리 반납
return 0;
}