#include<stdio.h>
#include<stdlib.h>
#include<ctype.h>
#include<string.h>
struct person *create_node(char *, char *,int);
void addnode(char *,char *,int,struct person *);
struct person
{
char fname[20];
char sname[20];
int pno;
struct person *next,*prev;
};
struct person *create_node(char *first,char *second,int mob)
{
struct person *pnode=(struct person *)malloc(sizeof(struct person));
strcpy(pnode->fname,*first);
strcpy(pnode->sname,*second);
pnode->pno=mob;
pnode->next=pnode->prev=NULL;
return pnode;
}
void addnode(char *first,char *second,int mob,struct person *pnode)
{
while(pnode->next!=NULL)
{
pnode=pnode->next;
}
pnode->next=create_node(first,second,mob);
pnode->next->prev=pnode;
}
int main()
{
struct person *root=NULL;
char choice='y';
char first[20];
char second[20];
int mob;
while(tolower(choice)=='y')
{
printf("enter the first name:");
scanf("%s",first);
printf("enter the second name:");
scanf("%s",second);
printf("enter the mobile no:");
scanf("%d",&mob);
if(root==NULL)
root=create_node(first,second,mob);
else
addnode(first,second,mob,root);
printf("enter the option to continue or end(y or n):");
scanf("%c",&choice);
fflush(stdin);
}
return 0;
}
这是我编写的程序,它的基本作用是,它将创建链表,从用户那里获取结构的值。
当我从函数运行这个程序时,我收到了 2 个类似的警告
struct person * create_node(char *, char *, int),
passing char to argument 2 of strcpy(char *, const char *) lacks a cast
我不明白为什么它将值传递const
给函数。
这个程序还有一个问题。在我输入第一个节点的信息后,程序停止工作。
我gcc
在 Windows 平台上使用编译器。请帮帮我。谢谢...