https://ko.wikipedia.org/wiki/%EB%8F%99%EC%A0%81_%EB%A9%94%EB%AA%A8%EB%A6%AC_%ED%95%A0%EB%8B%B9
▣ 메모리 할당 : 필요한 메모리를 힙이라는 메모리 영역에서 가져와 사용하는 것
▣ 동적메모리 : 상황에 따라 원하는 크기만큼의 메모리가 할당 가능
▣ 정적메모리 : 메모리의 크기가 코딩되어 있어서 나중에 조절할 수 없다.
▣ 메모리 할당 방법 : 데이터타입 *포인터이름 = new 데이터타입;
▣ 할당받은 메모리 반환 : delete 포인터이름;
▣ 동적 할당 메모리 초기화 : 데이터타입 *포인터이름 = new 데이터타입(초기값);
▣ 배열 메모리 할당 : 데이터타입 *포인터이름 = new 데이터타입 [크기];
▣ 배열 메모리 반환 : delete []포인터이름;
▣ 객체메모리 할당 : 클래스이름 *포인터이름 = new 클래스이름;
▣ 객체메모리 할당 및 초기화 : 클래스이름 *포인터이름 = new 클래스이름(매개변수값);
▣ Test* p = new Test는 매개변수가 없는 생성자를 호출
▣ Test* p = new Test(10)는 매개변수가 있는 생성자를 호출
▣ delete p; 는 메모리를 반환 돌려준다. 먼저 반환한 객체부터 소멸자 호출
▣ 객체 배열 메모리 할당 : 클래스이름 *포인터이름 = new 클래스이름[크기];
▣ 객체메모리 할당 및 초기화 : 클래스이름 *포인터이름 = new 클래스이름[크기]{ 클래스이름(초기값), 클래스이름() };
▣ Test* p = new Test[2]는 두개의 객체가 매개변수가 없는 생성자를 호출
▣ Test* p = new Test[2] { Test(10), Test() };
Test(10)는 매개변수가 있는 생성자를 호출, Test()는 매개변수가 없는 생성자 호출
Test()는 객체 배열 메모리 할당 시에만 사용 가능
▣ delete [] p; 는 메모리를 반환 돌려준다. 먼저 반환한 객체부터 소멸자 호출
▣ 힙(heap) : 프로그램이 실행 중 new 키워드를 이용해서 동적으로 메모리 할당받을 수 있는 메모리 영역
▣ 메모리 누수(memory leak) : 동적으로 할당받은 메모리 주소를 반환하지 않을 경우
'[ C++ ] > - C++ 문법정리' 카테고리의 다른 글
C++ 08 [string] (0) | 2023.03.28 |
---|---|
C++ 07 [this 포인터] (0) | 2023.03.24 |
C++ 05 [객체배열] (0) | 2023.03.24 |
C++ 04 [인라인 함수] (0) | 2023.03.22 |
C++ 03 [클래스, 멤버변수, 멤버함수, 생성자, 소멸자, 접근지정자] (0) | 2023.03.10 |
댓글