#include<stdio.h>
struct st
{
char *name;
char *br;
};
int main()
{
struct st ob[2];
ob[0].name=NULL;
ob[0].br=NULL;
ob[1].name=NULL;
ob[1].br=NULL;
printf("Enter name:");
scanf("%s",ob[0].name);
printf("enter branch:");
scanf("%s",ob[0].br);
}
当我执行这个程序时,输入名称后程序停止执行。请建议进行哪些更改以便程序正常工作。C中的结构编程
当指针保留我们输入的字符串地址时,这里需要'&'符号。 PL。评论 – Ajax 2014-12-03 05:25:57
@Ajax我不介意接受这个答案,但为什么甚至'&'需要在这里扫描一个字符串。而且这个答案也没有提到正在分配内存的实际问题。 – Gopi 2014-12-03 05:53:24
@Ajax scanf的参数像一个指针一样工作,所以你必须指出你得到的输入,这就是为什么。虽然Ob [0] .name会得到你的值,它会覆盖内存的错误部分,而不是指向你正在尝试获取输入的变量的内存位置。我希望这会满足你的问题。 – Deva 2014-12-03 06:19:19