new 와 delete 연산자를 이용하여 동적 메모리를 할당한다.
힙(heap)은시스템 공간의 메모리를 의미한다.
new 와 delete를 이용한 메모리의 할당.
int *pInt = new int; //데이터 타입 *포인터 변수 = new 데이터 타입
char *pChar = new char;
Circle *pCircle = new Circle(); // ()가 붙는다
delete pInt;
delete pChar;
delete pCircle;
new: 데이터 타입의 크기만큼 힙에서 메모리를 할당받고 주소를 리턴
delete: 포인터 변수가 가리키는 메모리를 힙으로 반환
※힙의 메모리가 부족하면 new 는 NULL을 리턴한다.
메모리 할당 할 때의 초기값
int *pInt = new int(10);
char *pChar = new char('c');
동적 메모리를 할당받을 때 초깃값을 지정하여 초기화할 수 있다.
동적메모리 할당 주의사항
- 동일한 메모리를 두번 반환하면 오류
- 동적할당 받지 않은 메모리를 반환하면 오류
배열의 동적 할당
데이터 타입 *포인터변수 = new 데이터타입 [배열의 크기]; // 배열의 동적 할당
delete [] 포인터 변수 ; // 배열 메모리 반환
동적 할당의 사용
int *p = new int;
*p = 5; // 할당받은 정수 공간에 5 기록
int n = *p // 할당받은 정수공간에서 값 읽기 n =5
delete p; // 할당받은 정수 공간 heap 에 반환.
c 의 포인터와 비슷하게 *을 사용하여 할당받은 정수 공간의 값을 지칭한다
'c++' 카테고리의 다른 글
c++ 참조 (0) | 2020.04.19 |
---|---|
string 클래스 (0) | 2020.04.19 |
명품 C++ 프로그래밍 Open Challenge 3장 (0) | 2020.04.18 |
헤더파일과 cpp 파일의 분리 (0) | 2020.04.18 |
class 의 생성자 (0) | 2020.04.17 |