当我输入名称并且没有出现时,此代码将进入循环。有什么问题?
# define M 3
struct clas
{
char name[16];
int key;
};
struct node
{
int n;
struct node *p[M];
struct clas clsf[M-1] ;
};
main()
{
int i;
struct clas clsf;
for(i=0;i<2;i++)
{
root = malloc(sizeof (struct node));
printf("enter name \n");
scanf("%s\n",root->clsf[i].name);
printf("%s\n",root->clsf[i].name);
printf("enter key\n");
scanf("%d", &root->clsf[i].key);
printf("%d",root->clsf[i].key);
}
}
答案 0 :(得分:4)
root
未定义,并且有一个未定义struct classifier
的实例:clsf
。
将struct classifier clsf;
替换为struct node *root;
从\n
格式中删除结尾scanf
:
与scanf("%s\n",root->clsf[i].name);
scanf("%s",root->clsf[i].name);
答案 1 :(得分:1)
仅将struct classifier clsf;
替换为struct node *root;
没有必要