<개인공부>/[C언어, C++]

[C언어] 동적할당 정리1 (malloc, realloc, calloc, free 함수)

사용자 BlockDMask 2017. 7. 10. 14:01
반응형

1) 함수 종류 및 설명.

아래 링크로 가시면 좀더 자세히 나와있습니다. 아래 링크가 이번에 작성한 내용입니다.

2018/10/31 - [<개인공부>/[C언어 & C++ 언어]] - [C 언어] 동적할당 정리2 (malloc, free 예제)

  • 프로그램 실행 도중에 필요한 메모리 공간을 할당하고 사용 후 해당 공간을 해제하는 것.
  • 헤더파일 : <stdlib.h>
  • 메모리 할당 함수 - malloc
  • 메모리 할당 및 초기화 - calloc 

  • 메모리 추가 할당 - realloc
  • 메모리 해제 함수 - free.


2) 함수 원형 


void *malloc(size_t size); 

  • 할당받을 메모리 크기를 인자로 받음
  • ex) int * arr = (int *)malloc(sizeof(int) * n); //인자의 갯수가 n개의 배열을 동적할당한다(그만큼의 메모리를 할당한다.)


void *calloc(size_t nelem, sizeo_t elsize);

  • 첫번째 인자 배열요소 갯수, 두번째 인자 각 배열요소 사이즈
  • 할당된 메모리 0으로 초기화


void *realloc(void *ptr, size_t size);

  • 이미 할당받은 메모리에 추가로 메모리 할당, 이전 메모리 주소 없어짐.


void free(void * ptr);

  • 할당한 메모리를 해제한다.
  • 할당한 메모리를 제대로 해제 해주지 않으면, 메모리 누수(메모리 릭)이 발생할 수 있다.
  • free(arr); //malloc으로 메모리를 할당한 메모리를 해제한다.

반응형