malloc : 라이브러리에서 제공하는 메모리 할당 함수, free(변수명) 으로 할당 내용을 해제한다.
- 형태 : void *malloc(size_t size), 반환형 : *void 메모리공간
+ 예 : int a = (int*)malloc(50 * sizeof(int));
- int형의 자료가 50개가 들어갈 공간을 확보, a[0~49]의 인덱스로 접근가능
- 프로그램 실행 중에 메모리를 할당받는 동적 메모리 할당 함수
new : 변수나 함수 객체의 생성자를 자동으로 호출하는 연산자, delete로 해제한다.
malloc | new |
라이브러리가 제공하는 함수 |
프로그래밍 언어가 제공하는 연산자 |
필요한 메모리 양을 바이트 단위로 지정하고 void*를 리턴 |
타입을 지정하고 해당 타입의 포인터를 리턴한다. |
메모리 할당이 목적, 초기값 할당 불가 |
할당과 초기화를 동시에 진행 가능 |
오로지 메모리 공간 만을 할당 |
생성자를 자동으로 호출 |
할당된 메모리는 크기 변경이 가능하다. |
재할당이 불가능하다. |
객체가 아니고 빈번하게 재할당을 한다면 malloc/free |
객체를 할당할 때에는 반드시 new / delete |
출처
'게임 프로그래밍 > C++ 기초' 카테고리의 다른 글
std::weak_ptr (0) | 2020.03.03 |
---|---|
std::shared_ptr 정의 및 문제점 (0) | 2020.03.02 |
오버로딩 (Overloading) (0) | 2020.03.02 |
오버라이딩 (Overriding) (0) | 2020.03.02 |
C++ Map [STL] (0) | 2019.02.23 |