Open ggjae opened 3 years ago
include 에 있고, 헤더 내 이미 구현된 malloc 메소드이고, 입력받은 바이트크기만큼 메모리 공간을 Heap memory에 할당해줌. malloc으로 메모리를 동적으로 받고 해제하지 않는다면, 메모리 릭이 일어날 수 있어 free를 꼭 사용해주는 것이 좋다.
C++의 동적할당에 대해 키워드로 지원해주는데, 헤더파일을 따로 포함시키지 않아도 사용할 수 있다. malloc과 같이 Heap memory에 할당해주고, delete로 해제할 수 있다. new 또한 해제를 꼭 사용해주는 것이 좋다.
malloc은 기본적으로 사이즈를 받아, 캐스트 연산자들의 도움을 받아 코딩을 진행하지만, new는 자동으로 할당할 타입만큼의 사이즈를 힙 메모리에 할당함으로 new가 더 편하다.
malloc은 동적할당만을 의도로 하고, 초기화는 불가능하다. new는 초기화까지 가능하다.
new는 생성자를 자동으로 호출하게 되고, 생성자는 객체를 자동으로 초기화해주는 함수이다.
C언어에서의 동적 할당
malloc - free
include에 있고, 헤더 내 이미 구현된 malloc 메소드이고, 입력받은 바이트크기만큼 메모리 공간을 Heap memory에 할당해줌.
malloc으로 메모리를 동적으로 받고 해제하지 않는다면, 메모리 릭이 일어날 수 있어 free를 꼭 사용해주는 것이 좋다.
new
C++의 동적할당에 대해 키워드로 지원해주는데, 헤더파일을 따로 포함시키지 않아도 사용할 수 있다. malloc과 같이 Heap memory에 할당해주고, delete로 해제할 수 있다. new 또한 해제를 꼭 사용해주는 것이 좋다.
차이점
malloc은 기본적으로 사이즈를 받아, 캐스트 연산자들의 도움을 받아 코딩을 진행하지만, new는 자동으로 할당할 타입만큼의 사이즈를 힙 메모리에 할당함으로 new가 더 편하다.
malloc은 동적할당만을 의도로 하고, 초기화는 불가능하다. new는 초기화까지 가능하다.
new는 생성자를 자동으로 호출하게 되고, 생성자는 객체를 자동으로 초기화해주는 함수이다.