메모리 동적 할당 방법
- C언어 : malloc(), calloc() 함수를 이용
- Cpp : new 연산자 이용
메모리 동적 해제 방법
- C언어 : free() 함수를 이용
- Cpp : delete 연산자 이용
new 연산자 사용 예
- type *포인터이름 = new type;
- 예를 들면 ) int* num = new int;
malloc()과 new의 차이점
- malloc()은 함수 new는 연산자
- malloc() 시스템함수로써 함수안에서 메모리 할당
- new는 연산자로 바로 메모리를 할당하는 것이 아니라 생성자를 호출해서 메모리 할당
- 생성자를 통해 호출하므로 new로 메모리 할당하여 생성시 초기화 가능
- malloc()은 realloc을 통한 재할당 가능, new는 재할당불가
- malloc() 리턴값 void* 때문에 malloc함수 사용시 자료형을 앞에 선언해줘야함.
- new는 type-safe(컴파일러가 타입을 확인해줌)로 해당객체에 맞는 포인터 반환
- new를 통해 객체 생성시 에러발생하면 예외처리
- malloc()은 예외처리 없이 NULL반환
'Programming > C++' 카테고리의 다른 글
[cpp][effective_c++_18] 인터페이스 설계는 쓰기엔 쉽게, 엉터리로 쓰기엔 어렵게 (0) | 2022.11.23 |
---|---|
[Cpp] Lambda 표현식에 대하여 알아보자 (1) | 2022.09.08 |
[CPP] 1. CPP의 법 따르기 (0) | 2022.01.24 |
[CPP] c++ 용어 정리 (0) | 2022.01.24 |
OOP 개념 (0) | 2019.01.01 |