C 동적 메모리 관리

(2019-11-23)

동적 메모리 관리 함수, malloc(), calloc(), free(), 동적 메모리 할당

1. [C 언어]  동적 메모리 관리(할당,해제) 함수 (stdlib.h)컴파일시에 메모리 공간을 확정하지 않고, 프로그램 실행시 동적으로 처리
     
     - malloc()  : 실행중에 동적으로 1개 값 형식으로 메모리 공간(힙 메모리)을 할당 
        . 특징
           .. 할당할 메모리 크기를, 바이트 단위로 전달받고,
           .. 한 번 할당된 공간 크기 값들을 안 바꿈
           .. 할당 만 가능, 초기화는 할 수 없음
           .. (void *)을 반환하므로, 반드시 캐스트 연산자를 써야 함
        . 例)
           .. (int *) malloc (100*sizeof(int)); // 100개 정수 크기의 바이트
           .. (float *) malloc (sizeof(float)); // 1개 실수 크기의 바이트
        . 반환 : 할당된 메모리 공간의 첫 바이트의 포인터를 반환 (void *)
           .. 만일, 메모리 부족 등으로 할당 실패시, NULL을 반환

     - calloc()  : malloc과 유사하나, 두 값 형식으로 메모리 공간을 할당
        . (개수,사이즈) 형식으로 전달받으며, 할당된 공간의 값을 모두 0으로 초기화
        . 따라서, 배열을 할당하고 모두 0으로 초기화 할 때는 calloc를 쓰면 편함

     - free()    : 이전 할당된 메모리 공간의 해제

     - realloc() : 이전 할당된 메모리 공간 크기 조정


[C 함수] 1. C 함수 2. C 함수 종류 3. C 문자열 함수 4. C 동적 메모리 관리 함수 5. C 파일 처리 함수 6. C 파일 포인터

 
        최근수정     요약목록     참고문헌