1. malloc 함수 : 동적으로 메모리 할당하는 함수. 힙 영역에 메모리 할당하는 함수.
2. 특징
할당하고자 하는 메모리의 크기를 함수 호출 시 바이트 단위로 전달하면, 그 크기만큼 메모리를 힙에 할당하게 된다.
그리고 할당한 메모리의 주소(첫번째 바이트의 주소)를 리턴한다.
따라서 힙에 할당한 배열이나, 변수에 접근하려면 포인터를 사용해야 한다.
malloc은 단순히 메모리에만 할당하는 함수이다.
인자 정보만을 가지고 포인터 타입, 즉 자료형을 결정짓지 못한다. 즉 리턴해야 할 주소값의 포인터 타입.
따라서 void*타입으로 주소값을 리턴한다.
int형 데이터를 저장하기 위해서 메모리를 할당했다면, 리턴되는 void*를 int*로 변환해야 한다.
int * i = (int*) malloc(sizeof(int));
int * i = (int*) malloc(4);
3. calloc 함수
#include <stdlib.h>
void* calloc(size_t elt_count, size_t elt_size) // calloc 함수 원형
calloc 함수는 elt_size크기의 변수를 elt_count개 만큼 저장할 수 있는 메모리 공간을 할당하라는 의미를 갖는다.
할당된 공간의 값을 모두 0으로 바꾼다.
'programming language' 카테고리의 다른 글
Eclipse 는 어려워 - 외부 파일 .java, .class 가져오기 (0) | 2021.11.16 |
---|---|
리눅스 C파일 Makefile 만들기 (VMware Ubuntu 20.04 LTS) (0) | 2021.04.07 |