Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- C++
- stl
- UE_LOG
- moreeffectiveC++
- 데이터애셋
- 알고리즘
- 람다사용정렬
- 크리티컬섹션
- BFS
- 선택정렬
- 델리게이트
- 정렬알고리즘
- 람다
- 스마트포인터
- UML관련
- 애셋로드
- 강참조
- map
- 약참조
- 정렬
- 프로그래머스
- 자료구조
- dataasset
- UE4 커스텀로그
- 언리얼가비지컬렉터
- enumasByue
- UELOG
- unorder_map
- C++최적화
- 언리얼엔진구조체
Archives
- Today
- Total
기억을 위한 기록들
new와 malloc의 차이점 본문
1. malloc은 라이브러리 제공함수로 함수 콜을 요청한다.
new는 C++언어에서 제공하는 기본 키워드로, 별도의 라이브러리 추가 없이 바로 사용가능
2. malloc은 사이즈를 매개변수로 받고, 리턴타입이 void* 형 이므로 캐스트 연산자의 도움을 받아야한다.
new는 할당할 타입을 지정하면, 알아서 할당할 타입의 포인터로 넘어온다. 그래서 할당할 타입의 포인터 변수로 받아오면 된다.
3. malloc은 메모리를 동적으로 할당하는 것만이 목적이라 초기값 지정 불가능.
new는 할당과 동시에 초기화 가능
4. new키워드는 생성자를 자동으로 호출.
생성자는 객체를 자동으로 초기화 해주는 함수로, malloc과 new의 가장 큰 차이점이다.
* new가 좋아보이긴하지만 malloc의 경우 realloc이라는 함수로 재할당이 쉽게 가능하지만, new는 대응이 없기 때문에 새로 할당->복사->해제 과정이 필요하다. 재할당이 빈번하게 필요하다면 malloc과 realloc이 더 좋은 서택이다.
해제하려면 malloc은 free, new는 delete로 해준다.
'C & CPP' 카테고리의 다른 글
템플릿(Template) 프로그래밍 (0) | 2021.03.01 |
---|---|
[CPP] 메모리 누수 찾기 - _CrtDumpMemoryLeaks()함수 (0) | 2021.01.31 |
[C++] char 와 string을 int형으로 변환하기 (0) | 2021.01.12 |
<algorithm>라이브러리 sort 함수 - 연산자 오버로딩 사용 예 (0) | 2021.01.08 |
[CPP]string - substr (0) | 2021.01.07 |