CS/C++

malloc/free와 new/delete의 차이

혀니리리 2023. 12. 13. 12:13
728x90

malloc과 new의 차이 (tistory.com)

 

malloc과 new의 차이

C++에서는 메모리 동적 할당을 위해 malloc과 new 둘 다 쓸 수 있습니다. 둘의 차이점에 대해 알아봤습니다. 1. malloc은 라이브러리 제공 함수로, stdlib.h 을 include 해주어야 사용 가능하지만, new는 기본

jhtop93.tistory.com

C++에서는 메모리 동적할당을 위해 malloc , new 둘 다 쓸 수 있음

1. malloc은 라이브러리 제공 함수로, stdlib.h 을 include 해주어야 사용 가능하지만,

new는 기본으로 제공하는 키워드이므로 별도의 라이브러리 추가 없이 바로 사용 가능

 

2. malloc은 사이즈를 매개변수로 받고, 리턴타입이 void*형이므로 sizeof()와 캐스팅을 활용해야 쉬운 코딩이 가능합니다. 반면에

new 할당할 타입을 지정하면 알아서 할당할 타입의 포인터로 넘어오기 때문에 할당할 타입과 같은 타입의 포인터 변수로 받아오기만 하면 됩니다.

 

3. malloc은 메모리를 동적으로 할당하는 것만이 목적이기때문에 초기값을 지정해줄 수 없지만,

new할당과 동시에 초기화가 가능합니다.

 

4. new생성자를 자동으로 호출합니다. 생성자는 객체를 자동으로 초기화해주는 함수

 

이것들만 보면 new 쓰지 malloc 왜쓰냐 할 수 있지만

realloc이라는 재할당 기능은 malloc에만 있기 때문에 재할당이 빈번한 경우 malloc이 더 좋은 선택이 될 수 있음.

728x90

'CS > C++' 카테고리의 다른 글

상등성과 동등성 차이  (0) 2023.12.13
오버로딩과 오버라이딩의 차이  (0) 2023.12.13
포인터와 배열의 차이  (0) 2023.12.13
struct와 class의 차이  (0) 2023.12.13
스마트포인터 / 사이클 해결 방법  (1) 2023.12.08