검색결과 리스트
글
동적 할당
- 컴파일을 실행하기 전에 메모리의 크기가 정해져 할당되어 있는 정적 할당과 달리 프로그램 실행 중에
- 컴파일을 실행하기 전에 메모리의 크기가 정해져 할당되어 있는 정적 할당과 달리 프로그램 실행 중에
메모리의 크기를 임의로 정할 수 있는 할당을 동적 할당이라 한다.
☞ 동적 할당을 쓰는 이유는 정적 함수를 쓸데보다 좀 더 효율 적으로 메모리를 활용 하기 위해서이다.
Ex) 1 ~ 100을 입력하는 배열에서는 크기를 100으로 줘야 하는데 그럼 20을 입력하면 80이 쓸데없게 된다.
Ex) 1 ~ 100을 입력하는 배열에서는 크기를 100으로 줘야 하는데 그럼 20을 입력하면 80이 쓸데없게 된다.
이러한 메모리를 효율적으로 사용하기 위해 동적 할당을 사용한다.
I. 동적 할당에서 사용하는 함수
※아래의 함수를 사용하기 위해선 헤더파일에 #include <stdlib>를 선언해 주어야 한다. ( standard library의 약자 )
1. malloc 함수
- Memory Allocation의 약어로 "메모리 할당" 이라는 뜻이다. 메모리의 크기를 설정 하기 위해 사용 한다.
형식 : 포인터 변수명 = (자료형 *) malloc ( sizeof( 자료형 ))
2. calloc 함수
- Clear Allocation의 약어로 "깔끔한 할당" 이라는 뜻이다. 메모리의 크기를 초기화 한 뒤 메모리의
크기를 설정 할 수 있다.
형식 : 포인터 변수명 = (자료형 *) calloc ( 메모리에 곱할 수, sizeof( 자료형 ))
Ex) num = (int *) calloc (5, sizeof(int))의 메모리의 크기는 5x(int의 자료형의 크기 4) 이니 20 이다.
3. realloc 함수
3. realloc 함수
- Re Allocation의 약자로 "재할당"이라는 뜻이다. 동적 메모리 할당을 해제하지 않고 다시 설정하여
이어서 사용이 가능하다.
형식 : 포인터 변수명 = (자료형 *) realloc ( 재설정할 변수 명 , sizeof( 자료형 ))
II. 동적 할당을 끝낼 땐..
- 동적 할당을 끝내고 싶을 땐 free (포인터 변수)를 입력하면 된다.
'Programming > C' 카테고리의 다른 글
Stack과 Queue (0) | 2015.08.26 |
---|---|
Call-by-value 와 Call-by-reference (0) | 2015.08.26 |
2차원 배열 (0) | 2015.08.26 |
[ Project ] Pascal (0) | 2015.08.26 |
포인터 ( Pointer ) (0) | 2015.06.14 |
RECENT COMMENT