Program Languege/C/C++
동적 할당
Frozen0113
2013. 2. 17. 20:36
동적 할당
자료 저장을 위해 저장 공간 할당하는 방법에는 정적 할당과 동적 할당이 있다. 정적 할당은 지금까지 해온 변수 선언 방식을 말한다. 프로그램 실행 전에 필요한 기억 장소가 미리 할당된 상태에서 프로그램 동작이 시작되므로 '정적'이라고 한다. '동적'은 미리 할당되지 않는 것을 말한다. 프로그램 실행 중에 필요한 만큼 저장 공간을 요청하는 것이다. 동적 할당은 기억 장소를 할당하고 할당된 저장 공간의 주소를 포인터 변수에 저장하면 된다. 이때 new 연산자를 사용한다.
Ex> 자료형 *포인터 변수 = new 자료형[개수];
필요한 저장 공간이 한개인 경우 뒤에 [개수]는 생략하면 된다. 동적 할당을 받은 경우에는 사용후에 사용을 끝내기위해 해제해야 한다.
해제에는 delete 명령이 사용된다.
Ex> delete [] 포인터 변수; // 한개의 경우 '[]' 생략.
delete 명령을 실행하지 않으면 프로그램이 종료될 때까지 확보하고 있다는 것만 우선 기억하자.
- 소스 코드 예시
int *p = new int;
*p = 10;
cout << *p << endl;
delete p;
int *pa = new int[3];
pa[0] = 1;
pa[1] = 2;
pa[2] = 3;
for(int i = 0; i < 3; i++)
{
cout << pa[i] << endl;
}
delete [] pa;
- 출처 : 열혈강의 C++ 언어본색
※ 책을 보고 공부한 내용을 정리하였기때문에 내용이 책과 다를 수 있습니다.