초보 코린이의 성장 일지

C++ malloc, free, new, delete 차이 본문

개인 공부

C++ malloc, free, new, delete 차이

코오린이 2023. 7. 25. 21:11

malloc

- 라이브러리 추가 stdlib.h를 해줘야 사용 가능.
- 함수의 일종
- 오버로딩 불가능
- 동적할당 할때 sizeof()와 형변환 캐스팅이 필요하다.
- POD 타입만 크기 할당이 가능 (char, int, float 등)
- 반환 값 void*
- 할당 실패시 error를 throw 한다
- 생성자 호출 기능이 없고, 동적할당만 가능하며, 초기값을 지정해 줄 수 없다.
- realloc를 사용해 메모리 크기를 조정할 수 있다.
- 사용이 끝나고 해제할때 free 사용

 

new

- 라이브러리 별도 추가 없이 사용 가능.
- 연산자
- 연산자 오버로딩 가능
- 형변환 없이 사용 가능
- 컴파일때 메모리를 할당하는게 아닌, 실행시간 동안에 메모리를 할당해준다.
- 반환 값 해당 타입의 포인터
- 할당 실패시 null을 반환한다.
- 생성자 호출이 가능하고, 동적할당과 동시에 초기화가 가능하다.
- 한번 할당된 크기에 대한 메모리 재조정이 불가능하다. (재조정 하기 위해서는 새로 할당, 복사, 해제하는 과정을 거처야한다)
- 사용이 끝나고 해제할때 delete 사용

'개인 공부' 카테고리의 다른 글

짐벌락 (GimBal Lock)  (2) 2023.09.27
C++ Static  (0) 2023.07.27
C++ Extern  (0) 2023.07.21
C++과 C#의 차이  (0) 2023.07.18
컴파일러 / 인터프리터 설명 및 차이  (0) 2023.07.18
Comments