C언어/디딤돌 C언어 예제

[C언어 소스] 동적 할당한 메모리의 크기를 확장(realloc 함수 사용)

언제나휴일 2016. 12. 1. 15:42
반응형

[C언어 소스] 동적 할당한 메모리의 크기를 확장(realloc 함수 사용)


Program.c


#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언어] 85. realloc 함수



반응형