与C中的typedef和指针混淆

时间:2011-10-02 01:16:42

标签: c pointers typedef

  

可能重复:
  Typedef pointers a good idea?

我对以下内容感到困惑:

typedef struct body *headerptr;

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

headerptr newHeadptr;

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

2 个答案:

答案 0 :(得分:3)

是。 headerptr现在相当于struct body*

答案 1 :(得分:2)

  

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

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

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

或:

struct body newBody;
headerptr newHeaderptr = &newBody;