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);
}
를 해보시면 이해하시는 데 도움이 될 것 같습니다