2013-01-07 6 views
0
#include<stdio.h> 

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

typedef struct stud *s1; 

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

S'il vous plaît aidez-moi comment initialiser struct pointer à NULL. j'obtiens l'erreur suivante pendant la compilation.initialisation d'un pointeur de structure typedef à NULL

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

Répondre

0

que vous vouliez dire définir la variable s1 comme

stud *s1; 

démonstration en direct: http://ideone.com/9ThCDi

La raison pour laquelle vous avez obtenu l'erreur que vous avez fait est que vous déclarez s1 être un type pour " pointeur vers le stud struct ". Ceci est faux pour deux raisons:

  1. Vous ne souhaitiez pas que s1 soit un type; tu voulais que ce soit un objet. La structure était struct student. Mais vous avez défini un type réel appelé stud.
0

Utiliser struct student * s1;

au lieu de

typedef stud struct * s1; Pour autant que je sache, typedef est utilisé uniquement lorsque vous définissez votre type de données personnalisé.