与C中的typedef和指针混淆

可能重复:
Typedef指针好主意?

我对以下内容感到困惑:

typedef struct body *headerptr; 

现在,当我创建类型headptr指向结构体的东西时,创建一个新的headerptr将如下(我不确定我是否正确地执行此操作):

 headerptr newHeadptr; 

我是否正确地假设这将是一个指向结构体的指针?

是。 headerptr现在等同于struct body*

这将是一个指向结构体的指针。

你声明它的方式, newHeadptr 可以指向一个struct body 。 但请记住,您尚未为其指定struct body 。 最初, newHeadptr只会有一些垃圾值。 为了纠正这个问题,你可以这样做:

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

要么:

 struct body newBody; headerptr newHeaderptr = &newBody;