본문으로 바로가기

[C Library] realloc() 사용법!

category Library/c Library 2018. 11. 16. 12:35


realloc 함수는 메모리 크기를 재할당 하는 역할을 합니다.


 함수명

 realloc

 헤더

 stdlib.h

 형태

 void *realloc(void *ptr,size_t size)

 인자

 ptr: 메모리 크기를 변경시킬 포인터

 size : 할당받을 메모리 크기

 반환

 void *, 메모리 크기가 변경된 메모리 주소


예제)


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#include <stdio.h>
#include <stdlib.h>
 
int main()
{
    int start, change;
    int *arr;
    printf("데이터 갯수: ");
    scanf("%d"&start);
 
    arr = (int *)malloc(start*sizeof(int));
 
    printf(">>>>");
    for (int i = 0; i < start; i++)
    {
        scanf("%d"&arr[i]);
    }
 
    printf("입력된 데이터:");
    for (int i = 0; i < start; i++)
    {
        printf("%d ", arr[i]);
    }
 
    printf("\n---------------------------------------");
    printf("\n\n추가시킬 갯수:");
    scanf("%d"&change);
    
    arr = (int *)realloc(arr, (change + start)*sizeof(int));
 
    printf("입력총갯수:%d",start+change);
    printf("\n>>>>");
    for (int i = 0; i < change + start; i++)
    {
        scanf("%d"&arr[i]);
    }
 
    printf("입력된 데이터:");
    for (int i = 0; i < change + start; i++)
    {
        printf("%d ", arr[i]);
    }
    printf("\n\n");
 
}
cs


결과)



-->

디버깅을 해보면 주소값을 malloc에서  0x00369D48의 주소를 할당받고 

realloc을 하게 되면 그 주소에서 다시 원하는 크기만큼 재할당을 받는것을 볼수 있습니다.




'Library > c Library' 카테고리의 다른 글

[C Library] malloc 사용법!!  (0) 2018.11.12
[C Library] memcpy 사용법!  (0) 2018.11.12