由于某些原因,我无法让这个工作。这是我在代码中的功能,如果这还不足以帮助我,我会很乐意发布整个代码。
char addcity()
{
citylist=malloc(sizeof(struct city));
struct city *temp;
char addcity[50];
char addstate[50];
char addpopulation[50];
char addregion[50];
char addzipcode[50];
//temp = citylist;
//citylist=malloc(sizeof(struct city));
//struct city *ptr=citylist;
struct city *ptr= (struct city*)malloc(sizeof(struct city));
printf("Which city would you like to add?: ");
scanf("%s",addcity);
printf("Which state is the city in?: ");
scanf("%s",addstate);
printf("What is the population?: ");
scanf("%s", addpopulation);
printf("what is the region?: ");
scanf("%s", addregion);
printf("what is the zipcode?: ");
scanf("%s", addzipcode);
int found;
ptr->name=addcity;
ptr->statecode=addstate;
ptr->population=addpopulation;
ptr->region=addregion;
ptr->zipcode=addzipcode;
ptr->next=NULL;
curr->next=ptr;
curr=ptr;
printlist(); //this just prints out the whole list.
有时候会出现分段错误,有时候它根本就不起作用。我是否必须使用strcpy(a,b)来复制字符串。
答案 0 :(得分:2)
printf("Which city would you like to add?: ");
scanf("%s",&ptr->name);
printf("Which state is the city in?: ");
scanf("%s",&ptr->statecode);
printf("What is the population?: ");
scanf("%s",&ptr->population);
printf("what is the region?: ");
scanf("%s",&ptr->region);
printf("what is the zipcode?: ");
scanf("%s",&ptr->zipcode);
答案 1 :(得分:1)
您的代码中存在一些问题。您的第一个问题是您在结构中设置指针以指向局部变量。代码离开addcity()
后,这些局部变量将不再有效,任何试图使用它们的东西都会遇到麻烦。
要将本地字符串复制到您的结构,您需要使用某种形式的字符串复制功能,例如strcpy(a,b)
。
答案 2 :(得分:1)
printf("Enter String ::");
scanf("%s",&ptr->str);