c 기초 플러스로 c언어를 공부중입니다.
이 책의 12장에서
double *ptd;
ptd = (double *) malloc(30*sizeof(double));
이렇게 하면 ptd가 double형 값 30개를 가지는 블록을 가리키는 포인터가 아니라,
하나의 double형 값을 가리키는 포인터로 선언 된 것에 주목하라고 되어 있습니다.
이후 설명으로 ptd가 블록의 첫번째 원소를 가리키도록 설정되었고, ptd[0]으로 그 블록의 첫번째 원소에 접근할 수 있다고 합니다.
그런데 맨 처음 ptd를 double형 포인터로 선언하면 그 ptd에는 그 포인터가 가리킬 메모리의 주소가 대입되어야 하는거 아닌가요?
(double)이걸로 변수의 유형을 임시로 변경해서 사용하는 방법은 앞에서 언급한 적이 있어서 어느정도 알고는 있는데,
(double *)이렇게 포인터와 관련해서 사용하는건 처음이라 잘 이해가 안되는 것 같습니다.