[C언어 소스] 동적 할당한 메모리의 크기를 확장(realloc 함수 사용)
#include <stdlib.h>
#include <stdio.h>
int *base = 0; //저장소의 위치 정보
int asize = 0; //현재 저장소의 용량
int usage = 0; //저장소에 보관한 요소 개수
void Input(int num); //저장소에 보관하기
void Resize();//저장소의 용량 변경하기
void View();//저장소의 정보 보기
int main()
{
Input(3);
View();
Input(5);
View();
Input(7);
View();
Input(9);
View();
return 0;
}
void Input(int num)
{
if(asize == usage)
{
Resize();
}
base[usage] = num;
usage++;
}
void Resize()
{
if(asize == 0)
{
asize = 1;
}
else
{
asize = asize * 2;
}
base = (int *)realloc(base,sizeof(int)*asize);
}
void View()
{
int i = 0;
printf("저장 용량:%d 사용량:%d\n",asize, usage);
for(i=0;i<usage;i++)
{
printf("%d\n",base[i]);
}
}
실행 결과
저장 용량:1 사용량:1
3
저장 용량:2 사용량:2
3
5
저장 용량:4 사용량:3
3
5
7
저장 용량:4 사용량:4
3
5
7
9
본문
'C언어 > 디딤돌 C언어 예제' 카테고리의 다른 글
[C언어 소스] 사용자 정의 동적 배열(인덱스로 보관) (0) | 2016.12.03 |
---|---|
[C언어 소스] 학생 구조체 동적 메모리 할당 (0) | 2016.12.02 |
[C언어 소스] 기본 형식 동적 메모리 할당(calloc 함수 사용 예) (0) | 2016.12.01 |
[C언어 소스] n명의 학생 성적 입력받아 출력(malloc 함수 사용) (0) | 2016.12.01 |
[C언어 소스] malloc 함수 사용 (기본 형식 메모리 동적 할당) (0) | 2016.12.01 |