#include <stdio.h>
#include <stdlib.h>
int main(){
int *list = malloc(3 * sizeof(int));
list[0]=1;
list[1]=2;
list[2]=3;
int *tmp = realloc(list, 4 * sizeof(int));
printf("list = tmp 이전\n");
printf("%p\n", &list[0]);
printf("%p\n", &tmp[0]);
printf("\n");
list = tmp; // 이 코드를 안써도 이미 x와 tmp의 첫주소가 같다고 나오더라구요
printf("list = tmp 이후\n");
printf("%p\n", &list[0]);
printf("%p\n", &tmp[0]);
free(list);
}
위 코드의 실행결과는 이렇게 나옵니다
강의를 보고 realloc 과 관련해서 궁금증이 생겨 이것저것 시도해보다가
list와 tmp의 주소를 확인해보니 realloc 만으로도 두 배열의 첫주소가 같아지는 것 같습니다.
그런데 한번 더 list = tmp ; 코드를 입력해서 주소를 같게 만드는 이유가 있을까요?
comment