与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;