동적할당에서 질문입니다.

hjhj5078 Reply 4 years 21 weeks ago
ptd = (double*)malloc(max*sizeof(double)); 라는 명령어가 있을때 double을 max개 저장하는 메모리의 동적할당을 해줄때 포인터가 저장되는 변수의 메모리도 동적할당을 동시에 해주는것인가요??
withcs2 Reply 4 years 21 weeks ago
malloc으로 double이 max개 들어갈 공간을 할당해두고 그 주소값을 ptd로 반환합니다. free(ptd)하면 할당된 공간을 풀어주는 것 뿐이고 ptd는 이후에도 계속 재활용 가능합니다. #include <stdio.h> #include <stdlib.h> int main(void){ int max=1; double* ptd = (double*)malloc(max*sizeof(double)); *ptd=123; printf("%p %lf\n",ptd,*ptd); free(ptd); printf("%p %lf\n",ptd,*ptd); } 를 해보시면 이해하시는 데 도움이 될 것 같습니다