【发布时间】:2020-12-09 14:25:45
【问题描述】:
在下面的代码中,我尝试使用 printf 和 scanf 从用户获取数据并将它们存储在我定义的名为 node 的结构中。
程序在第一个提示下运行良好,但是一旦用户输入姓名,程序就会以打印 Age:salary: 结束
谁能帮我解决这个问题?
顺便说一句,任何人都可以帮助我了解如何创建一个循环来将数据存储在各个节点中并将它们存储在一起吗? (不是一一硬编码)
非常感谢!!
typedef struct node
{
char *name;
int age;
int salary;
struct node * next;
}node;
int main(void)
{
node *tmp = malloc(sizeof(node));
printf("Name:");
scanf("%s", tmp->name);
printf("Age:");
scanf("%i", &(tmp->age));
printf("salary:");
scanf("%i", &(tmp->salary));
tmp->next = NULL;
free(tmp);
}
【问题讨论】:
-
char *name;你需要分配内存来写入 -
我努力回答了您的另一个问题。然后你删除了它而没有提供反馈。如果你经常这样做,人们可能会停止回答你的问题。所以我希望删除只是暂时的,直到你改进了问题。
-
你完全误解了,我删除我的问题是因为我看到你的评论,我意识到我在这个问题上搞砸了,所以我把它删除了。我为此道歉,我不打算这样做。真的很感谢你在这个问题上的回答,但我仍然需要做一些事情来消化答案
标签: c pointers struct scanf nodes