malloc : 메모리 할당 함수 (함수) void * malloc(size_t size);
- 메모리 공간만 할당 , 생성자 호출 X
- 할당받을 메모리 크기를 인자로 받는다.
- malloc은 할당된 공간의 값을은 바꾸지 않는다.
calloc : 메모리 할당 및 초기화 함수 (사이즈하고, 타임) void* calloc(size_t nelem, sizeo_t elsize);
- 배열요소 갯수,배열요소 사이즈
- calloc은 할당된 공간의 값을 모두 0으로 바꾼다.
- 배열을 할당하고 모두 0으로 초기화할 필요가 있을경우에는 calloc을 쓰면 편하다
realoc : 메모리 추가 할당 (덩글리 포인트 발생 할 수 있음) void realloc(void ptr, size_t size);
- 이미 할당받은 메모리에 추가로 할당, 이전 메모리 주소 없어짐
- 주소, 추가할당할 사이즈
- 대부분 새로운 메모리를 할당하므로, 이전 영역을 가리키는 모든 포인터 변수를 새로운 주소로 가리켜야 한다.
- 동적으로 할당한 메모리가 있고 여러 개의 포인터가 공유하고 있다면, 사용X
free : 메모리 해제 함수 void(* ptr);
new (연산자재정의)
- 연산자로 바로 메모리를 할당하는게 아니라 생성자를 호출하여 메모리를 할당합니다
- 할당할 메모리 크기 몰라도됨
- 생성자를 호출
- 재할당이 불가능 하다
'프로그래밍 > C' 카테고리의 다른 글
메모리 저장 구조 및 영역 (코드, 데이터, 힙, 스택) (0) | 2019.05.01 |
---|---|
정적 바인딩(Static binding). 동적 바인딩(Dynamic binding) (2) | 2019.05.01 |
메모리 단편화 (페이징,세그멘테이션,메모리풀) (0) | 2019.04.30 |
데이터형 크기 (0) | 2019.04.29 |
프로그래밍 (0) | 2019.04.29 |