본문 바로가기

General/C, C++, C#

[C언어] allocation, malloc, calloc, realloc, 동적할당

배열을 동적으로 할당 하는 방법에는 여러가지가 있다.

명시된 숫자값이 아닌 변수등의 값으로 배열을 선언하는데 유용하다.

우선 이 함수들을 사용하기 위해선 stdlib 헤더파일을 include 해야 한다.

( #include <stdlib.h> )

 

int input = 10;

int *arr;

// 위와 같이 선언하였다면...

 

 arr = (int *)malloc( sizeof(int) * input );
 arr = (int *)calloc(5, sizeof(int));

 

malloc 사용에서 int arr[10]; 과 같은 효과를,

calloc 사용에서 int arr[5];와 같은 효과를 얻을 수 있다.

 

 

한번 선언된 배열을 확장 할때 사용하는 realloc도 있다.


 arr = (int *)realloc(arr, 20*(sizeof(int)); // 20크기로 재할당

 

위에서와 같이 arr의 크기가 10이나 5였을때

배열의 시작위치는 변함없이 배열의 크기를 20으로 늘려주는 함수이다.


'General > C, C++, C#' 카테고리의 다른 글

[API] 유니코드  (0) 2009.11.30
[API] 기본예제(창 띄우기)  (0) 2009.11.30
[C언어] 동적 배열 할당  (0) 2009.11.30
[C언어] 기본개념  (0) 2009.11.30
[C언어] 제어문, 반복문 종류  (0) 2009.11.30