【问题标题】:Confusion with typedef and pointers in C [duplicate]与 C 中的 typedef 和指针混淆 [重复]
【发布时间】:2011-11-29 06:08:25
【问题描述】:

可能重复:
Typedef pointers a good idea?

我对以下内容感到困惑:

typedef struct body *headerptr;

现在,当我创建一个指向结构体的 headptr 类型的东西时,创建一个新的 headerptr 将如下(我不确定我这样做是否正确):

headerptr newHeadptr;

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

【问题讨论】:

  • 试试看。如果它有效,那就太好了。如果它没有回到这里。
  • 好的。好吧,编译器似乎没有抱怨,它确实有效。只是不确定我是否做得正确。

标签: c pointers typedef


【解决方案1】:

是的。 headerptr 现在等同于 struct body*

【讨论】:

    【解决方案2】:

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

    按照您声明的方式,newHeadptr可以指向struct body。但是请记住,您还没有分配一个struct body 让它指向。最初,newHeadptr 只会有一些垃圾值。要纠正这一点,您可以这样做:

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

    或:

    struct body newBody;
    headerptr newHeaderptr = &newBody;
    

    【讨论】:

    • 谢谢你,我已经定义了它,但我没有发布它。 ;D
    • 可能会更清楚headerptr newHeaderptr = malloc(sizeof *newHeaderptr)
    • @ChrisLutz,这是一个很好的观点。
    猜你喜欢
    • 1970-01-01
    • 2014-11-18
    • 2015-11-10
    • 2023-02-11
    • 2010-09-25
    • 2011-09-04
    • 2016-11-08
    • 2016-06-07
    • 1970-01-01
    相关资源
    最近更新 更多