将typedef结构指针初始化为NULL

时间:2013-01-07 05:09:16

标签: pointers struct initialization typedef

#include<stdio.h>

typedef struct student{
int id;
int mark;
}stud;

typedef struct stud *s1;

void main(){
s1 = NULL;
printf("hi");
}

请帮我解释如何将struct指针初始化为NULL。我在编译期间收到以下错误。

graph.c: In function ‘main’:  
graph.c:11:04: error: expected identifier or ‘(’ before ‘=’ token

2 个答案:

答案 0 :(得分:0)

您的意思是将变量s1定义为

stud *s1;

现场演示:http://ideone.com/9ThCDi

您遇到错误的原因是您声明s1是“指向struct stud的指针”的类型。这有两个原因:

  1. 您不希望s1成为某种类型;你希望它成为一个对象。
  2. 您的结构是struct student。但是您定义了一个名为stud的实际类型。

答案 1 :(得分:0)

使用 struct student * s1;

而不是

typedef struct stud * s1;

据我所知,只在定义自定义数据类型时使用typedef。