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 |