혼란

2011-10-02 6 views
1

가능한 중복 :
Typedef pointers a good idea?혼란

나는 다음과 혼란 스러워요 :

이제
typedef struct body *headerptr; 

, I 형 뭔가를 만들 새로운 headerptr을 만들려면 struct body를 가리키는 headptr이 다음과 같이 될 것입니다. (만약 내가 t 그의 올바르게) :

headerptr newHeadptr; 

나는 이것이 struct body를 가리키는 포인터라고 가정하는 것이 맞습니까?

+0

그것을보십시오. 효과가 있다면 좋을 것입니다. 여기로 돌아 오지 않으면. –

+1

좋아. 음, 컴파일러는 불평하지 않는 것 같고 작동합니다. 내가 제대로하고 있는지 확실하지 않습니다. – diesel

답변

3

예. headerptr은 이제 struct body*과 같습니다.

2

이것은 struct body를 가리키는 포인터입니다.

당신이 그것을 선언 한 방법하는 struct bodynewHeadptr 점. 그래도 가리 키도록 struct body을 할당하지 않았 음을 기억하십시오. 처음에는 newHeadptr에 약간의 가비지 값이 있습니다. 그를 해결하려면이를 위해 할 수있는 :

headerptr newHeaderptr = malloc(sizeof(*newHeaderptr)); 

또는 :

struct body newBody; 
headerptr newHeaderptr = &newBody; 
+0

감사합니다. 이미 이미 정의했지만 게시하지 않았습니다. ; D – diesel

+2

'headerptr newHeaderptr = malloc (sizeof * newHeaderptr)' –

+0

@ChrisLutz, 좋은 지적이다. – Caleb