홈 > IT > IT정보
IT정보

[C++] 동적할당 new & delete

3 Selovic 0 124 0 0
동적할당의 경우 메모리의 Heap 영역에 메모리를 할당하는 것을 의미합니다.
C++에서는 new 연산자를 통해 동적할당을 지원하며
delete 연산자를 통해 메모리를 반납합니다.
(C언어의 경우 malloc, free)

아래 예제 코드를 보여드리겠습니다.
#include <iostream>
using namespace std;

int main(void)
{
	int * ptr1 = new int; //int형 동적할당
	double * ptr2 = new double; //double형 동적할당
	int * arr2 = new int[3]; //int형 배열의 동적할당
	double * arr3 = new double[3]; //double형 배열의 동적할당

	int &ref = *ptr1; // 참조연산자 사용
	ref = 999; //참조를 통한 값의 변경
	cout << * ptr1 << endl; //변경된 값 출력

	delete ptr1; // 메모리 반납
	delete ptr2; // 메모리 반납
	delete []arr2; //메모리 반납
	delete []arr3; //메모리 반납

	ref = 111; //반납 후 값변경 시도
	cout << *ptr1 << endl; //반납 후 변경된 값 출력 시도
}


*결과창*


반납이후에는 출력되지않고 오류가 발생하는 부분을 알 수 있습니다.
중요한 점은 배열의 경우 반납할 때 []를 반드시 표시해야 합니다.
참조를 통하여 값을 변경하는 경우 선언한 변수에 값이
정상적으로 변경되는 것을 확인할 수 있습니다.

0 Comments
Category
Facebook Twitter GooglePlus KakaoStory KakaoTalk NaverBand
PlusFriend Chat